我有一个功能齐全的listview
(在ListFragment
中)和一个自定义ArrayAdapter
。适配器的布局由imageview
, button
, gridview
和一对textviews
组成。
问题是列表视图在滚动时非常不稳定。我已经实现了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);
1。扁平化ViewItem层次结构&使用合并标签
2。实现ViewHolder模式,或者使用androidannotation的inject特性
3。在另一个线程中执行重载
它会让你从布局的顶部滚动,也会给你流畅的滚动体验。
mainScrollView=(ScrollView)findViewById(R.id.scrollview);
mainScrollView.smoothScrollTo(0, 0);
mainScrollView.fullScroll(mainScrollView.FOCUS_UP);