【问题标题】:How to scroll to a particular position in a Listview inside Adapter class?如何滚动到 Adapter 类内 Listview 中的特定位置?
【发布时间】:2018-11-01 12:43:37
【问题描述】:

我想滚动到列表视图中的特定位置,但我必须在适配器类中进行。我使用getItem()方法找出我必须滚动到哪个项目,如下所示。

public class PropertyListAdapter extends BaseAdapter {

......

@Override
    public Object getItem( int position ) {
        if ( mPositionType[ position ] == DisplayType.Properties ) {

            return getPropertyForPosition( position - mSectionPositionAdjustment[ DisplayType.Properties.ordinal() ] );
        }

        return mPositionType[ position ];
    }

    @Override
    public long getItemId( int position ) {
        return position;
    }

    @Override
    public View getView( int position, View convertView, ViewGroup parent ) {
        return getDisplayView( position, convertView, parent );
    }

......

现在我如何滚动到这个类本身的那个位置?

【问题讨论】:

  • 您可以在适配器类中创建一个变量来引用您的列表视图。

标签: android listview baseadapter


【解决方案1】:

如果您只想让列表滚动到特定位置:

myListView.smoothScrollToPosition(i);

如果要获取特定项在 listView 中的位置:

myListView.getItemAtPosition(i);

还有这个listView.getVerticalScrollbarPosition(i);

}

如果你想在适配器中设置然后尝试在适配器类中获取ListView 引用下面是在适配器类中查找ListView 的代码。看看

  // See this method of your adapter
 // The parent is the view you are looking for
    public override View GetGroupView(int groupPosition, bool isExpanded, 
     View convertView, ViewGroup parent)
    {
        ListView view = (ListView)parent;
    }

【讨论】:

  • 问题是我无法在适配器类中获取 myListView 实例。我必须以某种方式在适配器类中进行。
  • @AadhilAhmed 告诉我你想在哪个条件下滚动。
猜你喜欢
  • 2017-04-08
  • 2015-07-29
  • 2018-07-17
  • 1970-01-01
  • 1970-01-01
  • 2012-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多