Android布局的优化

2018-08-19  本文已影响0人  _成长ing_

一、include标签:
      目的是提高代码的复用性,减少代码,将布局的公共部分抽取出来供其它布局使用。
二、merge标签:
      解决布局层级的优化,减少布局嵌套的层次,提高布局加载的效率。
特点:
      a 根布局是merge
      b 可以不设置width和height,其内部元素的排布是根据父view排布的。

1.LinearLayout下的include+merge 效果图: LinearLayout情况下.gif
  1. RelativeLayout下的效果图: RelativeLayout的情况下.gif

    3.merge中的代码

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_gravity="center"
        android:text="111" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_gravity="center"
        android:text="222" />
</merge>

三、ViewStub标签:
      ViewStub只有加载该布局的时候才占用资源,INVISIBLE状态是不会绘制出来的
ViewStub的使用:
      ViewStubViewStub加载布局和include的写法类似,但是需要设置width和height

<ViewStub
        android:id="@+id/viewStub"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout="@layout/item_view_stub"/>
运行后,使用Android Inspector查看当前布局发现ViewStub是灰色的,也就是没有被绘制出来,如图所示: invisible状态下.PNG

设置其显示:

findViewById(R.id.viewStub).setVisibility(View.VISIBLE);
运行后,使用Android Inspector查看当前布局发现为内部的layout的布局 visible状态下.PNG
上一篇 下一篇

猜你喜欢

热点阅读