Android 列表视图滚动平滑度
我有一个功能齐全的Android 列表视图滚动平滑度,android,android-listview,android-listfragment,Android,Android Listview,Android Listfragment,我有一个功能齐全的列表视图(在列表片段)和一个自定义的阵列适配器。 适配器的布局包括一个图像视图、一个按钮、一个网格视图和两个文本视图 问题是listview在滚动时非常不稳定。我已经实现了ViewHolder模式,它稍微提高了性能。 GridView由联系人图像组成,我正在AsyncTask中检索这些图像,并使用应用程序缓存显示位图。 我还可以做些什么来使这个listview滚动平滑? 我在适配器的getView方法中使用了视图循环,如下所示 public View getView(int p
列表视图
(在列表片段
)和一个自定义的阵列适配器
。
适配器的布局包括一个图像视图
、一个按钮
、一个网格视图
和两个文本视图
问题是listview在滚动时非常不稳定。我已经实现了
ViewHolder
模式,它稍微提高了性能。GridView
由联系人图像组成,我正在AsyncTask
中检索这些图像,并使用应用程序缓存显示位图。
我还可以做些什么来使这个listview
滚动平滑?我在适配器的
getView
方法中使用了视图循环,如下所示
public View getView(int position, View convertView, ViewGroup parent) {
View myView;
holder = new ViewHolder();
if (convertView == null) {
inflater = (LayoutInflater) getContext().getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
myView = inflater.inflate(R.layout.events_list_activity, parent, false);
}
else {
myView = convertView;
}
}
这个问题可能解释了列表视图的紧张行为
如果你想提高滚动速度,试试这个
getListView().setFastScrollEnabled(true);
它将给你从你的布局顶部滚动,也会给你平滑的滚动体验
mainScrollView=(ScrollView)findViewById(R.id.scrollview);
mainScrollView.smoothScrollTo(0, 0);
mainScrollView.fullScroll(mainScrollView.FOCUS_UP);
1.展平ViewItem层次结构并使用合并标记 2.实现ViewHolder模式,或使用androidannotation的注入功能
3.在另一个线程中执行heavyload。不,这没有帮助,因为我已经处理了所有这些。我的适配器上没有任何繁重的操作。另外,
setFastScrollEnabled
不是解决方案,因为滚动时listView仍然会抖动。是的,但我的问题与listView
有关,scrollview
将如何发挥作用?您是否正确地回收了列表视图
中每个项目中使用的视图
?您的列表视图
的每一行中都有一个网格视图
?如果是这样的话,那么我的下一个猜测是滚动的触摸动作被委托给了GridView
子对象,这使它变得紧张不安。尝试关闭所有GridView
s的触摸操作,看看是否有帮助,然后尝试删除所有GridView
s,看看问题是否消失。如果没有太多的代码,我们所能做的就是猜测;)