Android基础--tools:context=".TestActivity作用

最近学习JetPack,看到这么一句话,其实以前也有,那么记录一下到底什么意思:

Android开发中在布局文件里面都会有如下面的内容:

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" 
           xmlns:tools="http://schemas.android.com/tools"
           android:orientation="vertical" 
           android:layout_width="match_parent" 
           android:layout_height="match_parent" 
           tools:context=".TestActivity"/>

这里出现的 tools:context 作用,网上讲了很多,主要回答如下:

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的样子。仅用于给你看所见即所得的效果而已。

也许会看的似懂非懂,举个例子就行了:

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 属性主要针对的 上图右边那个模拟器 调试时候显示状态,编译中不起作用的, 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值