android竞品分析之布局优化

布局优化

目的:以小的内存代价实现流畅平滑的界面,在列表的组件(ListView,GridView)中的布局优化效果尤为明显。
优化方法:

  • 尽量使用RelativeLayout
  • 对可重用UI组件使用<include/>引用
  • 使用<merge/>标签来减少布局嵌套层次
  • 使用<ViewStub>标签对UI组件进行运行时加载,即延时加载(根据条件确定是否加载),未加载是不占用布局空间和内存空间的。

附:

<include/>的使用方法:

<include android:id="@+id/id名"
layout="@layout/引用的布局名"/>

注意:这里是layout,不是android:layout。

<merge/>的使用方法:
将根视图的布局方式用<merge></merge>来代替,如:

<FrameLayout>
   <FrameLayout>
   </FrameLayout>
   <ImageView androidid="@+id/im">
   android:layout_width="200dp"
   android:layout_height="200dp"
   android:src="@drawable/backgroud"
   />
</FrameLayout>

变为:

<merge>
   <FrameLayout>
   </FrameLayout>
   <ImageView androidid="@+id/im">
   android:layout_width="200dp"
   android:layout_height="200dp"
   android:src="@drawable/backgroud"
   />
</merge>

<ViewStub/>的使用方法:

   <ViewStub androidid="@+id/stub"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:layout="@layout/要延时加载的UI组件"
   />

最后,在java代码中获取ViewStub并调用.inflate()方法或.setVisibility(View.VISIBLE)即可实现加载该UI。
注意:上面两个方法只能调用一次,否则会异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值