android xml布局文件的绘制顺序
来源:互联网 发布:java collection sort 编辑:程序博客网 时间:2024/06/07 00:50
在开发Android程序的时候经常会遇到写界面XML文件的问题,其中感触最深的就是一些控件显示不出来或者显示的位置不对。通过不断地调试终于发现了一些原因,现在写出来,希望可以帮到大家。
之前我写过一个很简单的界面:
- <?xmlversionxmlversionxmlversionxmlversion="1.0"encoding="utf-8" ?>
- <LinearLayoutxmlns:androidLinearLayoutxmlns:androidLinearLayoutxmlns:androidLinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical">
- <RelativeLayoutxmlns:androidRelativeLayoutxmlns:androidRelativeLayoutxmlns:androidRelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <ListViewandroid:idListViewandroid:idListViewandroid:idListViewandroid:id="@+id/listview_mibTree"
- android:layout_height="wrap_content"
- android:layout_width="fill_parent"
- android:paddingTop="15dp"
- android:paddingBottom="15dp"
- android:layout_alignParentTop="true" />
- <Buttonandroid:idButtonandroid:idButtonandroid:idButtonandroid:id="@+id/btn_setInMain"
- android:layout_width="fill_parent"
- android:layout_height="60dp"
- android:text="设置"
- android:gravity="center"
- android:textSize="15sp"
- android:layout_alignParentBottom="true"
- android:layout_below="@id/listview_mibTree"/>
- </RelativeLayout>
- </LinearLayout>
但是这样的界面如果ListView的内容太长的话,底部的按钮就消失了。这是因为,系统在解析这个.XML文件的时候应该是顺序解析顺序绘制的一个过程,根据这个XML文件的逻辑,会先绘制ListView,之后在绘制底部的按钮,言下之意就是先绘制ListView,如果ListView的内容过多,那么势必为需要向下滑动浏览,ListView自己的内容都展示不完,哪里又还有位置留给底部的按钮呢?
所以正确的逻辑应该是:
- <?xmlversionxmlversionxmlversionxmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns:androidLinearLayoutxmlns:androidLinearLayoutxmlns:androidLinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical">
- <RelativeLayoutxmlns:androidRelativeLayoutxmlns:androidRelativeLayoutxmlns:androidRelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <Button
- android:id="@+id/btn_setInMain"
- android:layout_width="fill_parent"
- android:layout_height="60dp"
- android:text="设置"
- android:gravity="center"
- android:textSize="15sp"
- android:layout_alignParentBottom="true"/>
- <ListView
- android:id="@+id/listview_mibTree"
- android:layout_height="wrap_content"
- android:layout_width="fill_parent"
- android:paddingTop="15dp"
- android:paddingBottom="15dp"
- android:layout_alignParentTop="true"
- android:layout_above="@id/btn_setInMain"
- ></ListView>
- </RelativeLayout>
- </LinearLayout>
这时先解析的是按钮控件,所以已经现将其绘制到了界面的底部,这时就算ListView的内容再多,也不会影响Button的显示。而且其中ListView有一行代码:
android:layout_above="@id/btn_setInMain"
所以在编写界面的时候,只要搞清楚了其绘制的顺序,有很多问题就可以解决了。
表明ListView是绘制在Button之上的,所以该ListView不会把Button覆盖掉。
最后的界面:
- android xml布局文件的绘制顺序
- 关于Android中界面XML文件的绘制顺序
- android,xml布局顺序错乱的优化
- Android布局xml布局文件
- Android布局文件xml
- android-xml文件布局
- Android:xml布局文件的知识点
- android .xml文件 布局文件
- android 入门xml布局文件
- android 入门xml布局文件
- android 入门xml布局文件
- Android学习------------xml布局文件
- android 入门xml布局文件
- android 入门xml布局文件
- Android XML布局文件优化
- android xml布局文件入门
- Android布局文件中xml里的xmlns:的作用
- Android中XML布局文件@+id和@id的区别
- RelativeLayout的bug
- 快速排序、二叉搜索树
- ios框架详解系列(一)----UIView
- 百度搜索框输入值后自动弹出的下拉框的测试(可应用到很多场景)
- Flex之旅--(Flashbuilder安装配置破解,学习资料)
- android xml布局文件的绘制顺序
- 深入探讨 Java 类加载器
- 1485. Hanoi双塔问题
- [20130831]A Short History of Nearly Everything[serial]
- 【python】 动态加载模块和类
- 收藏一些好网址关于cocos2d-x
- SQLite---强大的轻型数据库
- Power BI for Office 365 概览
- 元素水平居中的多种实现