本文主要是介绍tools:context=”.MainActivity”与xmlns:tools名字空间,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
无意中发现默认的布局文件有些不同,LinearLayout变成了RelativeLayout,而且还有2段陌生的代码
xmlns:tools="http://schemas.android.com/tools"tools:context=".MainActivity"
这是ADT20.0之后的变化,默认布局文件为:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"android:paddingBottom="@dimen/activity_vertical_margin"tools:context=".MainActivity"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/hello_world" /></RelativeLayout>
还多了个新的namespace和相应的属性,这个属性的作用是什么呢?解释如下:
请各自选择相应语种,对号入座,O(∩_∩)O~
English Original Explaination:
One more thing: The "tools" namespace is special. The android packaging tool knows to ignore it, so none of those attributes will be packaged into the APK. We're using it for extra metadata in the layout. It's also where for example the attributes to suppress lint warnings are stored -- as tools:ignore. |
中文版意译:
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的样子。 仅用于给你看所见即所得的效果而已。 |
转自:http://www.mythroad.net/2013/01/08/toolscontext-mainactivity%E4%B8%8Exmlnstools%E5%90%8D%E5%AD%97%E7%A9%BA%E9%97%B4/
这篇关于tools:context=”.MainActivity”与xmlns:tools名字空间的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!