Android tools:context=".MainActivity"作用

来源:互联网 发布:ps mac 破解版 编辑:程序博客网 时间:2024/04/30 02:51
[html] view plain copy
 print?
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
  2.               xmlns:tools="http://schemas.android.com/tools"  
  3.               android:orientation="vertical"   
  4.               android:layout_width="match_parent"   
  5.               android:layout_height="match_parent"   
  6.               tools:context=".MainActivity"/>  

tools:context="activity name"这一句不会被打包进APK。

只是ADT的Layout Editor在你当前的Layout文件里面设置对应的渲染上下文,说明你当前的Layout所在的渲染上下文是activity name对应的那个activity,如果这个activity在manifest文件中设置了Theme,那么ADT的Layout Editor会根据这个Theme来渲染你当前的Layout。就是说如果你设置的MainActivity设置了一个Theme.Light(其他的也可以),那么你在可视化布局管理器里面看到的背景阿控件阿什么的就应该是Theme.Light的样子。仅用于给你看所见即所得的效果而已。


拿一个简单 tools:text 举个例子更形象些,方便进一步理解 tools:context


TextView采用了android:text , 而EditText中使用了tools:text:

右边Layout编辑器会显示内容Name , Sample Name 两个字体;

运行代码后,编译生成apk后,终端就只显示Name,不会显示Sample Name这些字。

比如我们在布局TextView 中想要显示一段文字时,以前使用android:text显示,然后在编译器中布局调整,最后完成后删除android:text属性。有了tools参数后,可以直接使用tools:text在预览时显示文字即可,省却了上面删除的麻烦,编译后此tools:text 相当于注释了。)


讲到这里,我们回去继续理解:tools:context 属性


1. tools:context="activity name"这一句不会被打包进APK, 

    --> 理解:相当于这句被注释了,编译后不起任何作用. 

2.  只是ADT的Layout Editor(即为上面图示右边模拟器)在当前的Layout文件里面设置对应的渲染上下文,当前的布局xml所在的渲染上下文是activity name对应的那个activity,如果这个activity在manifest文件中设置了Theme,那么ADT的Layout Editor会根据这个Theme来渲染你当前的Layout。就是说如果你设置的MainActivity设置了一个Theme.Light(其他的也可以)。

    -->理解:你加上了tools:context="activity name" ,这个xml 布局就是渲染指定activity , manifest文件中设置了Theme 的话, 上图右边模拟器theme 样式也会跟着变化对应 theme。


总而言之, 这些tools属性主要针对的上图右边那个模拟器调试时候显示状态,编译后不起作用的, 

以上理解希望对大家有进一步的帮助。


转自:http://blog.csdn.net/xiabing082/article/details/50563559

0 0