android ListView,setSelection()在setFlags(... FULLSCREEN)后无效

时间:2012-07-14 06:33:10

标签: android listview fullscreen

现在我遇到这个问题:

  1. 在我的Asynctask中,我有一个关于此Listview的ProgressDialog,它会不断更新并自动滚动(我使用类似mListview.setSelection(mData.size() - 1);滚动它)

  2. 我希望它在未完成或取消时全屏显示,我认为通过Window dialogWindow = mProgressDialog.getWindow();           dialogWindow.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

  3. 我还希望它在完成时不再是全屏(即我想要显示状态栏)。我想要显示列表视图中的第一个项目。

  4. --------------------这是问题发生的时候.---------------- ----

  5. 我喜欢用           dialogWindow.setFlags(0,WindowManager.LayoutParams.FLAG_FULLSCREEN);

    它运作良好。状态栏出现。

    然后我使用mListview.setSelection(0),我想这可以带给我第一项。

    但是,它根本没有效果。知道这是怎么发生的或如何解决它?任何帮助将不胜感激。谢谢!

2 个答案:

答案 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.

答案 1 :(得分:0)

你必须使用

mListview.clearFocus();

之前打电话

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

在mListView的post方法中。