2013-01-05 142 views
0

我有一個功能齊全listview(在ListFragment)用自定義ArrayAdapter。 適配器的佈局由一個imageview,一個button,一個gridview和一對夫婦的textviews的。
問題是listview在滾動時非常緊張。我已經實施了ViewHolder模式,並且它稍微提高了性能。
GridView由我在我AsyncTask檢索並且還使用應用程序緩存來顯示位圖接觸圖像。 我還能做些什麼來使listview滾動平滑?
我已經使用視圖循環利用爲我的適配器的ListView滾動平滑

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; 
    } 
} 
+0

你有正確的回收在'ListView'的每一個項目中使用的'View's? –

+0

添加了我的getView方法 – SKen

+0

你在'ListView'的每一行都有一個'GridView'?如果是這樣的話,那麼我的下一個猜測是,滾動的觸摸動作被委派給'GridView'子項,這使得它變得緊張。嘗試關閉所有「GridView」的觸摸動作,看看是否有幫助,然後嘗試刪除所有的GridView,看看問題是否消失。沒有太多的代碼,我們所能做的只是猜測;) –

回答

1

This問題可能對您的列表視圖的風聲鶴唳行爲解釋getView方法如下所示。

如果您正在尋找提高滾動速度,試試這個,

getListView().setFastScrollEnabled(true); 
+0

沒有它沒有幫助,因爲我已經照顧了所有這一切。我的適配器上沒有任何繁重的操作。另外'setFastScrollEnabled'不是解決方案,因爲listView在滾動時仍然會很緊張。 – SKen

-1

它會給你從你的佈局上面滾動,也它會給你平滑滾動體驗。

mainScrollView=(ScrollView)findViewById(R.id.scrollview); 
mainScrollView.smoothScrollTo(0, 0); 
mainScrollView.fullScroll(mainScrollView.FOCUS_UP); 
+0

這是如何相關? – SKen

+0

您要求滾動右.. ..? – GaneshKumar

+1

是的,但我的問題是關於'listview','scrollview'如何有所作爲? – SKen

0

1.Flatten您ViewItem層次&使用合併標籤

2.Implement ViewHolder模式,或使用注射androidannotation

3.Do在另一個線程的重負荷的功能。