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

举报
芝麻粒儿 发表于 2021/08/05 01:26:40 2021/08/05
2.4k+ 0 0
【摘要】 推荐资源站:https://zhimalier.com/ Android开发中在布局文件里面都会有如下面的内容: <LinearLayoutxmlns:androidLinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://sc...

推荐资源站:https://zhimalier.com/

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


      <LinearLayoutxmlns:androidLinearLayoutxmlns: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=".MainActivity"/>
  
 

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

有的人看了会明白一些,有的人看了也不太清楚,我再追加几句解释:

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

文章来源: zhima.blog.csdn.net,作者:芝麻粒儿,版权归原作者所有,如需转载,请联系作者。

原文链接:zhima.blog.csdn.net/article/details/52685145

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。