Android-布局优化(include , merge , ViewStub)
来源:互联网 发布:淘宝家装设计 编辑:程序博客网 时间:2024/04/27 15:27
1.回顾
上篇 学习 SeekBar 的知识 ,前面还 学习了 Android 的 五大布局知识 ,做了了解;文章地址:
安卓五大布局-http://blog.csdn.net/lablenet/article/details/47863171
2. 重点
(1)五大布局再讨论
(2)include
(3)merge
(4)ViewStub
3.五大布局优缺点 和使用 情况
已使用的情况以大到下排列:
(1)RelativeLayout
灵活性高,易于使用
(2)LinearLayout
线性的,垂直和水平; 布局层次一样的情况下,使用 线性布局,性能 高
(3)FrameLayout
布局叠加
(4)TableLayout
被Gridview 代替
(5)AbsoluteLayout
几乎不使用
4. include
(1)将各复用的组件 抽取出来 通过 include 标签使用
(2)将公用的组件放在单独的xml文件中,使用 <include /> 标签引入
(3)列子
新建common_title 布局文件:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#abcdef" android:paddingTop="10dp" android:paddingBottom="10dp"> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="14px" android:layout_alignParentLeft="true" android:layout_marginLeft="10dp" android:layout_centerVertical="true" android:text="返回" /> <TextView android:id="@+id/textView4" android:layout_centerInParent="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="18px" android:text="主页" /> <TextView android:id="@+id/textView5" android:layout_alignParentRight="true" android:layout_marginRight="10dp" android:layout_centerVertical="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="14px" android:text="设置" /> </RelativeLayout>
在 activity_mian.xml 中引入:
<include layout="@layout/common_title" />
效果图(刚刚的是 上面的 title ):
include 引入的 布局中的 控件式可以使用的;
5.merge
(1)合并Ui布局 , 降低 UI布局 嵌套层次
(2)merge 等同于 framelayout 可以取代和替代 FrameLayout
(3)例子:就是 上面效果图中的 环形进度条
新建 common_progress.xml
<?xml version="1.0" encoding="utf-8"?><merge xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ProgressBar android:id="@+id/progressBar1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center"/> <TextView android:id="@+id/tv_s" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="请稍后" /></merge>
在 activity_main.xml 中引入
<include layout="@layout/common_progress" />
(4)使用 merge 的时候需要几点注意
其父布局 ,只能有 layout_width 和 layout_height 不能有其他修饰
6.ViewStub
(1) 惰性加载 :它引入的布局 ,只有在触发的时候,才去加载,而不是像 include 直接加载过来,减少了 cpu和内存的压力;
(2)新建common_text.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="我是隐藏内容" /></LinearLayout>
(3)在 activity_main.xml 中声明 Viewstub 标签
注意 :这里引入的 布局文件的时候是 android:layout="" ; 和 include 不一样;
<ViewStub android:id="@+id/stub" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="300dp" android:layout="@layout/common_text" />
(4)业务实现
初始化控件包括 ViewStub ;
使用 viewStub的 inflate() 方法加载 ;效果 如上图所示!!!!
btn_viewStub=(Button)findViewById(R.id.btn_viewStub);viewStub=(ViewStub) findViewById(R.id.stub);btn_viewStub.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {viewStub.inflate();}});
7.demo 免积分下载
你没点击错误,就是它! 可拖动滚动条实现
http://download.csdn.net/detail/lablenet/9046135
- Android-布局优化(include , merge , ViewStub)
- Android 布局优化之include、merge、ViewStub
- android 布局优化标签<include/>、<merge />、<ViewStub />
- Android之布局优化include、merge 、ViewStub
- Android布局优化之include、ViewStub、merge
- Android使用include/merge/ViewStub优化布局
- Android布局优化技巧--<include>/<merge>/<viewStub>
- Android 布局优化 include,merge,viewstub标签
- Android布局的优化-include、merge、ViewStub
- Android UI优化:抽象布局(include、merge 、ViewStub)
- Android布局优化——抽象布局:include、merge 、ViewStub
- Android:布局include、merge 、ViewStub
- Android——Android布局优化(include、ViewStub、merge)
- android三种布局优化的方法:include,merge,ViewStub
- Android布局优化include 、merge、ViewStub的应用
- Android布局优化之include、merge、ViewStub的使用
- Android 布局优化之——include、merge 、ViewStub
- FrameLayou和UI的布局优化(merge、include、ViewStub)
- Vijos P1501 笨笨的果实采摘
- OCR字符识别
- GCD使用经验与技巧浅谈
- 使用Bitmap做数据分析统计
- shell中各种括号的作用()、(())、[]、[[]]、{}
- Android-布局优化(include , merge , ViewStub)
- 如何向GitHub提交更改的代码
- 程序员的年龄天花板
- POJ-1405 Heritage-高精度加减乘
- IOS 退出程序APP代码
- 分治:二分搜索法算法的java实现
- 使用CUBLAS的一些小例子
- 归途
- MyBatis简介与配置MyBatis+Spring+MySql