【问题标题】:ListView smoothScrollToPosition working but setSelectionFromTop not workingListView smoothScrollToPosition 工作但 setSelectionFromTop 不工作
【发布时间】:2013-01-20 19:51:45
【问题描述】:

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

我正在使用这个。

 // 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 运行良好。

【问题讨论】:

    标签: android android-widget


    【解决方案1】:

    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 顶部边缘(加上填充)的距离。

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

    【讨论】:

    • 我不知道这里出了什么问题。 setSelection(Index) 和 smoothScrollToPosition(Index) 需要相同的参数吗? setSelectionFromTop (Index, 50) 应该将项目放在 Index 50 像素以下的位置。但什么也没发生。
    • 由于我有自定义适配器,适配器中是否需要任何东西。任何事情 im xml 声明 ListView 和 listView 中项目的 rlayout 都可以对此负责吗?
    【解决方案2】:

    这行得通 -

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多