android - recyclerview - tools:ignore




Android布局文件中的“工具:上下文”是什么? (5)

从最近的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" />

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

它甚至如何知道写在那里的活动的确切路径? 它是否在清单中查看应用程序的包?

它仅限于扩展上下文的类还是仅限于活动? 它可用于ListView项目等?


1.Description

tools: context = "activity name"它不会被打包到apk 。只有ADT布局编辑器在你当前的布局文件中设置相应的渲染上下文,显示你当前布局渲染的上下文是活动名称对应的活动,if manifest文件中的活动将设置主题,然后ADT布局编辑器将根据Theme.Means呈现当前布局,如果您将MainActivity设置为主题。 Light(其他),然后你在视觉布局管理器中看到背景控制什么应该是主题。 光看起来像。只有向你展示你看到的是你得到的结果。

有些人看到会明白一些,有些人看到也不知道,我会补充几句解释:

2.Sample

以一个简单的tools:text为例,多一些形象,便于进一步理解tools:context

<TextView
    android:id="@+id/text1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="sample name1" />

<TextView
    android:id="@+id/text2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:text="sample name2" />

TextView 1采用了android: text ,并在TextView 2中使用tools:text ,在Layout编辑器的右侧将显示sample name1sample name2两种字体,如果在运行代码后编译,生成apk ,终端只显示sample name1 ,不显示sample name2的字样。 你可以尝试运行,看看效果如何。

3.具体描述

1. tools: context = "activity name"它不会被打包到apk (理解:相当于这个被评论,编译没有效果。)

2.只有ADT布局编辑器(即为模拟器右侧上面的图标)在当前布局文件中设置相应的渲染上下文时,当前XML渲染上下文的布局是活动名称对应的活动,如果清单文件中的活动设置了主题,则ADT布局编辑器将根据Theme.Means呈现当前布局,如果您将MainActivity设置为主题。 (理解:你添加的tools: context = "activity name" ,XML布局是渲染指定的activity,在manifest文件中建立一个Theme,如上图右边的模拟器Theme style也会跟着相应的变化到主题。)

4.summary

综上所述,这些属性主要针对上述正确的工具,模拟器调试时显示状态,并且编译不起作用,


“工具:上下文”是可以促进开发框架中的XML创建布局的设计属性之一。 此属性用于显示开发框架选择哪个活动类来实现布局。 使用“工具:上下文”,Android Studio会自动为预览选择必要的主题。

如果您想了解更多有关Android应用程序开发的其他属性和实用工具,请参阅此评论: http://cases.azoft.com/4-must-know-tools-for-effective-android-development/ : http://cases.azoft.com/4-must-know-tools-for-effective-android-development/


它为开发工具提供了上下文,以及在何处使用此布局,以便这些工具可以为开发人员提供更好的帮助,例如:

更准确地呈现预览,将托管活动及其主题纳入更智能的助理,例如上述快速修复工具:上下文完全是可选的。 没有它,开发工具可以并且可以工作。 这些工具可能会降低对您的帮助,但这是您的选择。

工具:上下文 - 或工具名称空间中的任何属性 - 在运行时不会产生影响。 我没有检查过,但我希望在打包APK时他们甚至会被剥离,因为它们在运行时没有用处。


根据tools.android.com/tech-docs/tools-attributes

工具:上下文

此属性通常在布局XML文件的根元素上设置,并记录布局与哪个活动相关联(在设计时,因为布局显然可以由多个布局使用)。 这将例如由布局编辑器用来猜测默认主题,因为主题在Manifest中定义并且与活动相关联,而不是与布局相关联。 您可以使用与清单中相同的点前缀来指定没有完整应用程序包名称作为前缀的活动类。

<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编辑器用于呈现布局的活动(它将根据活动找到正确的主题)。 here (在文章的中间;订阅该页面以保持最新)。





android-tools-namespace