Getting position of View in onCreateViewHolder

前端 未结 3 1607
野性不改
野性不改 2020-12-15 06:29

I am using a RecyclerView with a single row layout with an ImageView and a TextView.

I want to implement a OnClickListener for the View and not for seperate ViewHold

3条回答
  •  天命终不由人
    2020-12-15 07:15

    override getItemViewType method in your Adapter:

    @Override
    public int getItemViewType(int position) {
        //...
        return position;
    }
    

    Now viewType is position

     @Override
        public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
           int position=viewType; //position 
            //your code 
    
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_recursive, parent, false);
            return new ViewHolder(view);
        }
    

    for example

    public class BrandBtnAdapter extends RecyclerView.Adapter
    {
    
         //............
    
        @Override
        public int getItemViewType(int position)
        {
            //...
            return position;
        }
    
        @Override
        public BrandBtnAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
        {
            int position = viewType; //position 
    
            final View itemView = mInflater.inflate(mResource, parent, false);
            return new BrandBtnAdapter.MyViewHolder(itemView);
        }
    
    }
    

提交回复
热议问题