2012-07-14 77 views
0

現在我有這個問題時:的Android的ListView,爲setSelection()有setFlags後沒有效果(... FULLSCREEN)

  1. 在我的AsyncTask,我有一個ProgressDialog在這個列表視圖,是不斷更新,自動滾屏(我使用類似mListview.setSelection(mData.size() - 1);滾動的話)

  2. 我想它時,它不是完成或取消,我認爲這是通過窗口很容易被全屏dialogWindow = mProgressDialog.getWindow(); dialogWindow.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

  3. 我也希望它在完成時不再是全屏(即我想顯示狀態欄)。我也想要顯示Listview中的第一個項目。

  4. --------------------這是問題發生的時間。 ---

我使用像 dialogWindow.setFlags(0,WindowManager.LayoutParams.FLAG_FULLSCREEN);

它運作良好。狀態欄出現。

然後我使用mListview.setSelection(0),我想這可以把我的第一個項目。

然而,它根本沒有效果。任何想法如何發生或如何解決它?任何幫助將不勝感激。謝謝!

回答

1

你可以試試這個方法,也許對你有所幫助..

http://developer.android.com/reference/android/widget/ListView.html#smoothScrollToPosition(int) 



public void smoothScrollToPosition (int position) 

Since: API Level 8 
Smoothly scroll to the specified adapter position. The view will scroll such that the   indicated position is displayed. 

Parameters 
position Scroll to this adapter position. 
+0

我想我已經嘗試過一次,最終導致了非常奇怪的行爲:它滾動了一下,並過早停止,未達到所選項目。更重要的是,我寧願立即關注第一個項目而不進行任何滾動。 – 2012-07-14 06:50:34

0

你必須mListView的POST方法調用

mListview.requestFocusFromTouch(); 
mListview.setSelection(0); 

前使用

mListview.clearFocus();