在我的主要活动布局(RelativeLayout)中,我在其他按钮和Textview中显示三个垂直方向的列表视图。我的问题是,当其中一个列表视图(屏幕左侧的那个)更新时,其他两个也会更新,导致UI性能不佳。
据我所知,当一个视图的大小影响另一个视图的定位(导致另一个视图重绘)时,RelativeLayout可能会很棘手,所以我确保两个listviews的定位与左边没有关联listview的大小。
我还查看了有关如何使用ViewHolders等提高listview重绘效率的技巧,但我宁愿将此问题解决到它的核心。
更多详情:
答案 0 :(得分:1)
如果将android:layout_height="wrap_content"
设置为ListView,系统会尝试找到每个元素的最佳大小并多次调用getView。除了使用android:layout_height="fill_parent"
http://www.androiddevelopersolutions.com/2013/07/android-listview-adapter-getview-called.html custom listview adapter getView method being called multiple times, and in no coherent order
答案 1 :(得分:1)
你是罪魁祸首的RelativeLayout,在其中使用其他一些视图,比如LinearLayout和android:weightSum等......
答案 2 :(得分:0)
尝试使用相同的适配器类以获得更好的性能,因为执行时间因您要显示的数据类型而异。