从最近ADT的新版本开始,我注意到布局XML文件上的这个新属性,例如:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    tools:context=".MainActivity" />

“工具:上下文”的用途是什么?

它怎么知道写在那里的活动的确切路径?它会查看manifest里面的应用程序包吗?

它局限于扩展Context的类还是仅仅局限于活动?它对ListView项目等有用吗?


当前回答

根据Android工具项目网站:

工具:上下文

This attribute is typically set on the root element in a layout XML file, and records which activity the layout is associated with (at designtime, since obviously a layout can be used by more than one layout). This will for example be used by the layout editor to guess a default theme, since themes are defined in the Manifest and are associated with activities, not layouts. You can use the same dot prefix as in manifests to just specify the activity class without the full application package name as a prefix.

<android.support.v7.widget.GridLayout
    xmlns:android="http://schemas.android.com/apk/res/android"    
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity">  

用于:Studio和Eclipse中的布局编辑器,Lint

其他回答

这是UI编辑器用来渲染布局预览的工具。它被记录在这里:

此属性声明默认情况下该布局与哪个活动相关联。这使得编辑器或布局预览中需要活动知识的功能成为可能,例如预览中的布局主题应该是什么,以及当您从快速修复中制作这些时,在哪里插入onClick处理程序

“tools:context”是设计属性之一,可以在开发框架中用XML创建布局。此属性用于向开发框架显示用于实现布局的活动类。使用“tools:context”,Android Studio自动为预览选择必要的主题。

如果你想了解更多关于Android应用程序开发的其他属性和有用工具,可以看看这篇评论:http://cases.azoft.com/4-must-know-tools-for-effective-android-development/

这是最好的解决方案: https://developer.android.com/studio/write/tool-attributes

这是设计属性 我们可以像这样在XML中设置活动上下文

tools:context=".activity.ActivityName"

适配器:

tools:context="com.PackegaName.AdapterName"

单击标记的图标可以导航到java类 工具有更多的功能

tools:text=""
tools:visibility:""
tools:listItems=""//for recycler view 

etx

此属性声明默认情况下该布局与哪个活动相关联。这使编辑器或布局预览中需要活动知识的功能成为可能。

根据Android工具项目网站:

工具:上下文

This attribute is typically set on the root element in a layout XML file, and records which activity the layout is associated with (at designtime, since obviously a layout can be used by more than one layout). This will for example be used by the layout editor to guess a default theme, since themes are defined in the Manifest and are associated with activities, not layouts. You can use the same dot prefix as in manifests to just specify the activity class without the full application package name as a prefix.

<android.support.v7.widget.GridLayout
    xmlns:android="http://schemas.android.com/apk/res/android"    
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity">  

用于:Studio和Eclipse中的布局编辑器,Lint