Android布局文件中标签含义

我们在布局文件中定义一个线性布局时一般都会




    
        
     

但是我们有仔细考虑过每一行的作用吗,这一篇文章就仔细探索下每一行的实际意义。

version="1.0" 声明用的xml版本是1.0
encoding="UTF-8" 声明用xml传输数据的时候的字符编码,假如文档里面有中文,编码方式不是UTF-8,传输过去再解码的话中文就会是乱码

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns是XML Namespaces的缩写,中文名称是XML命名空间。
没有这句话就不能设置 android:***** 等属性
所以接下来所有的系统控件我们都可以使用android:***** 等属性

xmlns:app="http://schemas.android.com/apk/res-auto"

使用系统控件以及使用相应的属性都没问题了,但是对于自定义view以及自定义view的默认属性我们该怎么办呢
在网上查找资料并且实践的时候发现demo里有使用

xmlns:myxmlns="http://schemas.android.com/apk/res/com.xxx.xxx"

在as引用的时候我们发现了一串提醒


image.png

现在统一用:

xmlns:app=”http://schemas.android.com/apk/res-auto” 
(app为自定义的名字)

我们使用最新推荐的方法就可以使用我们的自定义view以及自定义view属性了



    


   
        
        
        
    

image.png

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

用tools设置的默认值,只在预览时有用,不会影响运行时

预览效果

实际运行效果

因此,设计时可以用 tools 覆盖所有已存在于 android 命名空间中的属性(无法覆盖自定义属性)

tools:context

上面的布局文件
tools:context=".matrix.MatrixActivity"

用来记录这个布局和哪个Activity相关。
这样在布局文件中,按住Ctrl+点击鼠标左键,可以定位到相关的Activity。

tools:layout

这个属性通常设置在 fragment 标签,用于在布局时预览fragment布局文件的预览图。


无预览效果

image.png

当然如果你在代码里设置的布局不是预览的布局,最终运行效果还是以代码返回为准


image.png

image.png

tools:showIn

这个属性设置在被别的布局引用的布局里。允许你指定一个布局包裹此布局,在设计时这个指定布局将显示在此布局的外面。

我们一般都是这样使用一个include标签


image.png

但是需要对照着Include标签里的内容并且对照父布局时就很麻烦


image.png

引用tools:showin标签就可以在子布局里实时预览效果了。

tools:listitem / listheader / listfooter

可以给ListView (或者其他 AdapterView 像 GridView, ExpandableListView 等) 设置列表项、HeaderView和FooterView

image.png

一般情况下我们无法实时预览item布局在listview中的位置

image.png

你可能感兴趣的:(Android布局文件中标签含义)