说明
上篇文章Android性能优化-布局优化(一)咱们说过,为了解决布局冗余,合理使用include/megre/viewStub。
include
把公共的布局抽取成独立的xml复用
<include layout="..."><include>
megre
省了一层布局层级
<megre
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
...
...
</megre>
ViewStub
某些场景,一级父布局根据不同的业务条件显示不同的布局,原始的做法是把布局都写在xml中,通过gone/visiable来控制。其实这种场景非常适合ViewStub。xml不占用,使用的时候ViewStub.inflate。
注:不要在非 UI 线程中初始化 ViewStub,否则会返回 null。
<ViewStub
android:layout="..."
android:id="@+id/viewStub"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
activity中直接inflate
mViewStub = findViewById(R.id.viewStub);
mViewStub.inflate();
网友评论