我目前正在研究一個ListView
,其中包含大約80到100個項目(TextViews
)。我不認爲這是太多的內容,但當我滾動(用手指)ListView
是浮動或laging。但是,當我使用「快速滾動按鈕」 - ListView
右側的那個東西時 - 滾動看起來非常一致和平滑。爲什麼ListView不一致滾動?
有沒有人有同樣的問題?我在我的HTC Sensation上測試了ListView
。
這裏是我的ListView代碼:
<ListView
android:id="@+id/list_view"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:scrollingCache="true">
</ListView>
和Java代碼:
adptr = new ArrayAdapter<String>(iF, R.layout.list_item, showing) {
@Override
public View getView(int position, View convertView, ViewGroup grp) {
LinearLayout lin = new LinearLayout(this.getContext());
lin.setOrientation(LinearLayout.HORIZONTAL);
// Icon
ImageView v = new ImageView(this.getContext());
// v.setBackgroundDrawable(iF.getResources().getDrawable(R.drawable.cube_icon));
// Text
TextView txt = new TextView(this.getContext());
txt.setTextSize(Float.valueOf(prefs.getString("pref_txtSize", "12")));
txt.setPadding(10, 10, 10, 10);
txt.setText(this.getItem(position));
txt.setTextColor(getLineColor(position));
// Shortcut
LinearLayout shortLin = new LinearLayout(this.getContext());
shortLin.setGravity(Gravity.RIGHT);
LayoutParams par = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
shortLin.setLayoutParams(par);
TextView s = new TextView(this.getContext());
s.setTextSize(Float.valueOf(prefs.getString("pref_txtSize", "12")));
s.setWidth(iF.getResources().getDimensionPixelSize(R.dimen.shortcutWidth));
s.setPadding(10, 10, 10, 10);
s.setText(getShortcut(position));
shortLin.addView(s);
// Return
txt.invalidate();
v.invalidate();
s.invalidate();
lin.addView(v);
lin.addView(txt);
lin.addView(shortLin);
return lin;
}
};
正如你所看到的,我做了一個自定義的ListView
。 ArrayAdapter
將以不同的方法添加(此處未顯示)。
在此先感謝
阿德里安
不知道,如果你要在你的getView() – 2012-02-06 16:30:31
是無效的textviews所有的時間。這可能不是杞人憂天。我真的不知道它做了什麼。發現這在一些谷歌研究:) – aeduG 2012-02-06 16:43:50