Ui性能优化
1、我们在写视图的时候,要尽可能的少写视图层级
2、能用FrameLayout写的,就不要用RelativiLayout,能用RelativiLayout写的,就不要用LinearLayout(有权重 会计算两遍)。
3、使用merge合并 减少一个节点
<!-- merge合并 -->
<merge xmlns:android="http://schemas.android.com/apk/res/android"> -->
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_launcher"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="50dp"
android:layout_marginTop="10dp"
android:textSize="20sp"
android:text="我是小黑马"/>
</merge>
用include引入 merge会遵循引入它的Layout的属性
<?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="horizontal" >
<include layout="@layout/activity_main"/>
</LinearLayout>
4、 ViewStud 需要用到的时候才会去加载
在开发中经常会遇到这样的情况,会在程序运行时动态根据条件来决定显示哪个View或某个布局。那么通常做法就是把用到的View都写在布局中,然后在代码中动态的更改它的可见性。但是它的这样仍然会创建View,会影响性能。
这时就可以用到ViewStub了,ViewStub是一个轻量级的View,不占布局位置,占用资源非常小。
<!-- 在需要用到额时候才会去加载 -->
<ViewStub
android:id="@+id/mystub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout="@layout/common_msg" >
</ViewStub>
```
5、使用include 复用布局
>标签可以在一个布局中引入另外一个布局,这个的好处显而易见。类似于我们经常用到的工具类,随用随调。便于统一修改使用。
6、
>Fragment+viewpager (推荐使用)
>Fragment+fragment (多加节点) 1、容易有bug 2、嵌套很深 节点越少越好
网友评论