美文网首页
Android布局的优化

Android布局的优化

作者: _成长ing_ | 来源:发表于2018-08-19 21:20 被阅读0次

一、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

相关文章

网友评论

      本文标题:Android布局的优化

      本文链接:https://www.haomeiwen.com/subject/iwlhiftx.html