2

我有一个列表视图,要求是务实地滚动列表。

我正在使用这个。

 // allClues.setSelection(clueIndex +1 );
 //allClues.setSelectionFromTop(clueIndex+1, rowWidth*noOfrows /2 + 50);

allClues.smoothScrollToPosition(clueIndex +1 );
allClues.invalidateViews();

它有一个 onItemClickListener

listView.setOnItemClickListener(new OnItemClickListener() {
          @Override
          public void onItemClick(AdapterView<?> parent, View view,
          int position, long id) {



             ItemAdapter.selectedItem = position;

            view.setSelected(true);

            ((AbsListView) parent).invalidateViews();

            puzzle.setSelected(position);


          }
        }); 
    }

smoothScrolltoPosition 工作正常,但列表很长并且滚动非常频繁,因此看起来不太好。

当我使用 setSelection 将特定项目定位在顶部和 setSelectionFromTop 时,没有任何事情发生。这两种方法是否需要一些先决条件,因为 smoothScrolltoPosition 运行良好。

4

2 回答 2

2

这有效 -

        allClues.post(new Runnable() {            
                public void run() {
                    allClues.setSelection(ind);

                }
            }); 
于 2013-08-14T06:39:59.443 回答
0

setSelectionFromTop(..)应该管用。正如文档所说:http: //developer.android.com/reference/android/widget/ListView.html#setSelectionFromTop%28int,%20int%29

public void setSelectionFromTop (int position, int y)

参数 position 要选择的数据项的索引(从 0 开始)。y 项目将被定位的距 ListView 顶部边缘(加上填充)的距离。

所以你可能用错了。第一个参数并不意味着列表应该滚动的位置。

于 2013-02-05T20:12:27.770 回答