工具属性

Android 有一个专用的XML命名空间,用于使工具可以记录XML文件里的信息,并且在打包程序的进行把信息剥离到不会带来运行时期和下载大小的负面影响的程度。 这个命名空间的 URI 是 http://schemas.android.com/tools,并且它通常被绑定到 tools: 前缀中:

<FrameLayout 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" >
</FrameLayout>

这个tools标签主要是为adt插件使用的。他里面的很多属性能在很大程度上方便我们的开发,但是并不会影响我们最终生成的apk包。比如大家在写一个界面的时候一般都会给Textview写上text的值,然后在开发完毕的时候再删除他,这个操作就很麻烦,但是现在你就可以。

tools:ignore

此属性可以在任何 XML 元素上设置,它是一个逗号分割的lint 问题ID的列表,表示了应该要在此元素或它的任何子元素上递归忽略的lint问题的ID。

<string name="show_all_apps" tools:ignore="MissingTranslation">All</string>

tools:context

<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"    />  

tools:context=".MainActivity"这一句不会被打包进APK。只是ADT的Layout Editor在你当前的Layout文件里面设置对应的渲染上下文,说明你当前的Layout所在的渲染上下文是activity name对应的那个activity,如果这个activity在manifest文件中设置了Theme,那么ADT的Layout Editor会根据这个Theme来渲染你当前的Layout。仅用于给你看所见即所得的效果而已。(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:targetApi

此属性像 Java 类中的 @TargetApi 批注解一样: 它允许您指定一个 API 级别,可以是整数或代码名称,表示此元素需要在此级别之上运行。

<GridLayout tools:targetApi="ICE_CREAM_SANDWICH" .........>

tools:text

<TextView
         android:text="text"
         tools:text="tools text".........>

tools:text,其实就是给ADT用的,用于在design页面能够预览到这个属性的值,但是当实际上运行的时候是看不到这个值的。

tools:listitem / listheader / listfooter

是给ADT来让你预览listview布局的。

<ListeView
           tools:listview="@android:layout/simple_list_item_1".........>

tools:locale

此属性可以设置在资源文件的根元素上,并且应该对应于一种语言或一个地区。这会让工具知道文件的字符串被假定为哪种语言(区域)中的。例如, values/strings.xml 可以有此根元素:

<resources xmlns:tools="http://schemas.android.com/tools" tools:locale="es">

tools:layout

此属性通常设置在一个 标签中,用来记录在设计时你想看到渲染的布局 (在运行时,将由这个标签所列的fragment的类的操作所决定)。

<fragment
          android:name=".MyFragment"                        tools:layout="@android:layout/list_content" />

tools:showIn

该属性设置于一个被其他布局的布局的根元素上。这让您可以指向包含此布局的其中一个布局,在设计时这个被包含的布局会带着周围的外部布局被渲染。这将允许您“在上下文中”查看和编辑这个布局。

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:text="@string/hello_world"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:showIn="@layout/activity_main" />

tools:menu

这个属性在布局的根元素上设置,用于配置在 Action Bar中显示的菜单。Android Studio 通过查看这个布局文件所链接的activity(通过 tools:context)里的onCreateOptionsMenu()方法,尝试找出哪些菜单在 ActionBar 中使用。它允许重写哪个搜索和显示声明的菜单用于显示。它的值是逗号分隔的 id 列表 (没有 @id/ 或任何这类前缀)。还可以使用没有.xml 扩展名的菜单xml文件的名称。

<LinearLayout xmlns: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:menu="menu1,menu2" />

tools:actionBarNavMode

这个属性在布局的根元素上设置,用于配置 Action Bar 使用的导航模式。可能的值包括:“standard”,“list”和“tabs”。

<LinearLayout xmlns: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:actionBarNavMode="tabs" />

更多

http://tools.android.com/tips/layout-designtime-attributes

本文转自我爱物联网博客园博客,原文链接:http://www.cnblogs.com/yydcdut/p/4783274.html,如需转载请自行联系原作者

Android -- tools相关推荐

  1. No cached version of com.android.tools.build:gradle:2.0.0 available for offline mode.

    异常场景 从AS2.0升级到2.1,重新编译工程后,抛出了如下异常 Error:A problem occurred configuring root project 'AndroidStudioPr ...

  2. Could not find com.android.tools.build:gradle

    Could not find com.android.tools.build:gradle:3.0.0. 或者改代码:根目录下的build.gradle buildscript {repositori ...

  3. 解决delphi10.2.3 android tools闪退

    解决delphi10.2.3 android tools闪退 修改D:\Program Files (x86)\Embarcadero\Studio\19.0\PlatformSDKs\android ...

  4. com.android.tools.build:gradle:2.0.0-alpha3 build errors

    当Android studio 编译时间过长且出现问题比如下面的提示: java.exe'' finished with non-zero exit value 3. 此时就要检查一下跟目录下面的bu ...

  5. 【错误记录】Android Studio 编译报错 ( Could not find com.android.tools.build:gradle:4.2.1. )

    文章目录 一. 报错信息 二. 解决方案 一. 报错信息 导入了一个 Eclipse 项目 , 编译后报如下错误 : FAILURE: Build failed with an exception.* ...

  6. AndroidStudio编译提示Could not find com.android.tools.lintlint-gradle26.1.3问题的解决

    打开app同事留下的project,此project用到library,编译此module的时候提示Could not find com.android.tools.lintlint-gradle26 ...

  7. com.android.tools.build:gradle:2.3.3,关于com.android.tools.build:gradle:3.4.2的构建问题

    Android Studio Version:3.4.2 Android Gradle Plugin Version:3.4.2 Gradle Version:5.1.1 根据以上IDE工具以及对应的 ...

  8. Android Studio下“Error:Could not find com.android.tools.build:gradle:2.2.1”的解决方法

    今天更新Android Studio后打开Project,报如下错误: Error:Could not find com.android.tools.build:gradle:2.2.1. Searc ...

  9. android gradle 1.5.0,Cordova build – 无法解析com.android.tools.build:gradle:1.5.0

    在升级了cordova和我机器的npm(Ubuntu 15.10)之后,我无法使用cordova建立一个新项目.构建控制了graddle中的错误. 我做了一些研究,发现了一些可能的解决方案更改版本和u ...

  10. Android Tools 在线更新SDK Manager

    收集整理Android开发所需的Android SDK.开发中用到的工具.Android开发教程.Android设计规范,免费的设计素材等. 欢迎大家推荐自己在Android开发过程中用的好用的工具. ...

最新文章

  1. 对tomcat服务的***演示与安全分析
  2. Cookie与 Session使用详解
  3. Computing--图灵机
  4. aop对请求后端的参数修改_Spring Aop 修改目标方法参数和返回值
  5. 【软件-软件设计师】操作系统知识架构图
  6. my Note debug - add to function
  7. mockjs中的方法(三)
  8. Windows用户安全小技巧
  9. pythond的执行原理_Python多进程原理与实现
  10. HTTPS协议详解:TLS/SSL握手过程
  11. vue+elementUI的el-form的回车键登录
  12. 网络切片技术缺点_5G中网络切片研究的现状与挑战
  13. 如何让谷歌取消自动重定向
  14. 从Slice_Header学习H.264(二)--片头的子语法项目
  15. padavan支持惠普打印服务器,【完美解决】openwrt共享hp1020打印机,HP/惠普打印机_好文分享_优购 - 荐优,购适...
  16. abb变频器以太网适配器,ABB以太网适配器 Ethernet Adapter现货FENA-01
  17. 你只管打开这个网站,剩下的交给「卧槽」!
  18. proteus 安装包以及破解汉化
  19. 《Spring Cloud Netflix》--服务注册和服务发现-Eureka的深入了解
  20. php微信上传头像,微信小程序怎么上传头像

热门文章

  1. python 姿势估计_Python中的实时头姿势估计
  2. 天文坐标系的转换 时角坐标和赤道坐标系的转化
  3. 2021/4/2听宫老师演讲有感。
  4. python的难点是什么,【python基础学习】基础重点难点知识汇总
  5. 同名文件替换怎么恢复_U盘里被替换的文件怎么恢复?方法选对,其实很简单...
  6. git 回退上一个版本_世界上最流行的版本控制系统Git
  7. pie函数--Matplotlib
  8. Linux三剑客之grep
  9. Angular和Vue.js 深度对比
  10. Python Tornado web框架简单例子