viewHolder.getAdapterPosition()始终返回-1

cas*_*orz 6 android android-support-library android-viewholder android-recyclerview

由于某种原因,我无法使用,holder.getAdapterPosition()因为它总是返回-1但holder.getLayoutPosition()返回一个位置就好了.

我的onCreateViewHolder:

@覆盖

public ViewHolder onCreateViewHolder(ViewGroup parent,
                                     int viewType) {
    // create a new view
    View v = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.my_item, parent, false);


    ViewHolder vh = new ViewHolder(this, v);
    return vh;
}
Run Code Online (Sandbox Code Playgroud)

我的ViewHolder构造函数:

public ViewHolder(DirectoryListAdapter adapter, View linear) {
            super(linear);
            this.adapter = adapter;
            this.linear = (LinearLayout) linear;
            this.entryName = (TextView) linear.findViewById(R.id.item_name);
            this.entryImage = (ImageView) linear.findViewById(R.id.item_image);

}
Run Code Online (Sandbox Code Playgroud)

我看起来更远,getAdapterPosition看起来像这样:

 public final int getAdapterPosition() {
            final ViewParent parent = itemView.getParent();
            if (!(parent instanceof RecyclerView)) {
                return -1;
            }
            final RecyclerView rv = (RecyclerView) parent;
            return rv.getAdapterPositionFor(this);
        }
Run Code Online (Sandbox Code Playgroud)

基本上发生的事情是ViewParent为null.知道为什么会这样吗?

除此之外我的回收工作正常.

谢谢.

cas*_*orz 0

这在新版本的支持库 (22.1.0) 上似乎不是问题。