在使用包含153 TextView的RelativeLayout(包装到ScrollView中)时遇到性能问题。每个TextView都有9个补丁背景。
主要布局:
<ScrollView
android:id="@+id/forum_accueil_ScrollView"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:background="@color/white">
<RelativeLayout android:id="@+id/forum_accueil_RelativeLayout"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:background="@color/white">
</RelativeLayout>
</ScrollView>
RelativeLayout以编程方式填充TextViews(项目计数和描述来自WS)。每个TextView都有一个9patch背景选择器。 TextView描述如下:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="35dip"
android:textColor="@color/myblue"
android:textStyle="bold"
android:gravity="center_vertical" android:layout_gravity="center_vertical"
android:background="@drawable/selector_forum_accueil_item">
</TextView>
最后,我有一个包含153 TextView的RelativeLayout。显示和滚动非常慢。即使回到这项活动也需要一些时间。
我打开了Hierarchy查看器,ScrollView需要以下时间才能显示:
测量:28ms 布局:1.2ms 平局:18ms
有没有办法加快显示和响应速度?包含尽可能多的视图的单个RelativeLayout是最好的方法吗(我试图用这种技术尽可能地压平层次结构)? 我尝试删除9补丁背景进行测试,似乎响应更快。为什么呢?
答案 0 :(得分:1)
这是一个淫秽的TextViews。此时使用ListView。你的RelativeLayout为你做了什么(在这个例子中)ListView不能做什么?
答案 1 :(得分:0)
您的问题非常明确:为什么渲染/布局时间在取出9补丁背景后响应更快?实际上有两个好的答案:
警告经验:9-patch渲染经常,但并不总是受GC循环的影响,该循环占渲染时间的80%。在某些情况下,我看到这个GC循环在渲染其他位图/光栅图像时发生,但在<9-patch渲染过程中 似乎更频繁地发生。