如何滚动到 Adapter class 内的 Listview 中的特定位置?

How to scroll to a particular position in a Listview inside Adapter class?

我想滚动到列表视图中的特定位置,但我必须在适配器内执行此操作 class。我使用 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 );
    }

......

现在如何滚动到 class 本身内的那个位置?

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

myListView.smoothScrollToPosition(i);

如果您想获取特定项目在 listView 中的位置:

myListView.getItemAtPosition(i);

还有这个listView.getVerticalScrollbarPosition(i);

}

如果您想在适配器中设置,则尝试在适配器 class 中获取 ListView 参考 下面是用于在适配器 class 中查找 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;
    }