Android Tools Attributes使用

前言:

在xml的根布局中你一定见过这样的代码:

xmlns:tools="http://schemas.android.com/tools"

一直以来都不知道这是什么,或者这些代码有什么用,偶然间看到一个GitHub上介绍tools使用的小项目,终于明白了它的作用。下面一起来感受一下吧。

Android Studio支持预览效果,但是有些效果必须是运行了代码之后才能看到,比如我们有个TextView要显示网络加载的数据,一般我们会先在xml中给这个TextView设置一下假数据,用到

android:text="测试时用的数据"

万一网络出错或者因为某些不可知的原因,我们没有将真实的数据设置上去,很尴尬的事情就会发生,用户可能就会看到我们的假数据,这样就会显得很Low。

Tools的作用就是让我们可以在xml阶段就看到预览效果,而同时呢,在运行代码阶段,不会将这些假数据打包进Apk中。

让我们开始使用Tools吧

要使用Tools功能,我们就需要在xml的根布局中加入上面出现过的第一行代码,接下来就可以愉快的使用它啦。

1.对于View的使用(包括继承自View的)
tools可以支持view的任何属性,
例如 android:text=“测试时用的数据” 可以替换tools:text=“测试时用的数据”
(上面的效果是xml的preview可以看到效果,但是程序运行起来后并不会有该测试数据)

2.tools:showIn
这个属性挺实用的,该属性支持使用了<include>标签的预览。
对于include 的布局,想要在include布局中看到外层的布局,可以在include布局的根布局中使用
tools:showIn="@layout/外层布局" 来达到在内层看到整个预览的效果。
不论是外层还是内层的xml,都可以在preview中看到完整的布局,可以说是相当地给力!

这里写图片描述

扫描二维码关注公众号,回复: 1742246 查看本文章

3.对于列表的预览
对于ListView,GridView,支持以下属性:

tools:listheader="@layout/list_header" 头布局
tools:listfooter="@layout/list_footer" 尾布局
tools:listitem="@layout/list_content" item布局

其中list_header等是自己需要加载的布局,里面的数据显示可以
通过@tools:sample/…来获得,或者也可以使用自定义的json文件来获取假数据

这里简单介绍一下@tools:sample/
它提供了以下的属性供我们使用:
这里写图片描述
比如用户的全称啊,所在城市啊,时间啊等假数据。
使用起来也很方便

 <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            tools:text="@tools:sample/first_names"
            />
 <ImageView
        android:layout_width="60dp"
        android:layout_height="65dp"
        tools:background="@tools:sample/avatars"
        tools:ignore="ContentDescription" />

对于ListView的预览效果可以看一下。

这是单个的item布局效果:
这里写图片描述

它会自动地加载不同的假数据给我们展示:

这里写图片描述

真的觉得对于列表的预览这一点功能十分给力,省去了很多需要运行之后看效果的时间。(特别是项目大了以后,AS编译运行的时间真的蛋疼)
不过十分可惜的是目前RecyclerView只支持tools:itemCount这个属性,希望后续的能支持吧。

最后提一下我在一开始使用的时候出现的问题(当时记录的):

1.之前有点小问题是使用了include之后(与showIn无关),外层整个布局有时候会消失,如果注释掉include的代码又会出现,同时虽然xml的preview不显示,但是运行的话,显示又是正确的,可能是我哪里做错了吧

2.一开始使用listview做预览的时候出现的问题是它显示找不到那个item的布局,明明有的它找不到,醉了

最后怎么解决的呢?坑逼的来了,重启一下Android Studio就好了。。。(Invalidate and Restart)

这是Google官方对于tools使用的链接,有兴趣的小伙伴可以去看一下:
https://developer.android.google.cn/studio/write/tool-attributes.html#toolscontext

猜你喜欢

转载自blog.csdn.net/ckwccc/article/details/79298135