使RecyclerView具有交互性

时间:2015-08-18 11:36:17

标签: android android-recyclerview

如何在OnClickListener ??

上实施RecyclerView

在线教程显示了OnItemTouchListener的实现,但它们有点含糊不清。有人可以显示代码,以便与RecyclerView进行触摸交互的简单实现。

我遇到过一篇文章:http://sapandiwakar.in/recycler-view-item-click-handler/

这提供了一个关于如何去做的模糊图片,但有人可以说清楚。感谢。

3 个答案:

答案 0 :(得分:2)

如果您使用自定义适配器,那么您可以在Holder类中使用这样的OnClickListener方法。

public class DataObjectHolder extends RecyclerView.ViewHolder {
        TextView header , resp_id , time;
        ImageView status,info,delete,upload;

        public DataObjectHolder(View itemView) {
            super(itemView);
            header = (TextView) itemView.findViewById(R.id.header_text_inc);
            resp_id = (TextView) itemView.findViewById(R.id.resp_text_inc);
            time = (TextView) itemView.findViewById(R.id.time_text_inc);
            delete =(ImageView)itemView.findViewById(R.id.delete_inc_image);
        Log.e(LOG_TAG, "Adding Listener");



            itemView.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                   // do something here                 
                }
            });
        delete.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                r_bean = mDataset.get(getAdapterPosition());

            }
        });

答案 1 :(得分:1)

对于protected void Page_Load(object sender, EventArgs e) { if(Page.IsPostBack==false) //Page loads for the first time { demoTxtBox1.Text ="Text test on page Load"; // Set text box value demoTxtBox2.Text=""; } else{ string textInTextBox1 = demoTxtBox1.Text; //Get text box value demoTxtBox2.Text = textInTextBox1; } } 项目RecyclerView是最佳方式

但你可以通过跟随adpter

点击Item
OnItemTouchListener

@Override public void onBindViewHolder(ViewHolder holder, int position) { ... holder.itemView.setOnClickListener(..) ... }

上滑动
RecyclerView

请参阅此link for complete left-to-right and right-to-left swipe detection

答案 2 :(得分:1)

您可以使用holder.root在customadapter中单击项目

 @Override
    public void onBindViewHolder(final MyAdapter.ViewHolder1 holder,  final int position) {

    holder.root.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
         //write your code here
        }         
    });

}

你必须使用这个

 mRecyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {


       @Override
       public boolean onInterceptTouchEvent(RecyclerView recyclerView, MotionEvent motionEvent) {
           child = recyclerView.findChildViewUnder(motionEvent.getX(),motionEvent.getY());


           if(child!=null && mGestureDetector.onTouchEvent(motionEvent)){
               //Drawer.closeDrawers();
        //write your code here

               return true;
           }             

           if(txt!=null)
           {


       }
       });