Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何通过在“回收器”视图中单击同一列表中的另一个项目来隐藏列表中的项目?_Android_Android Recyclerview - Fatal编程技术网

Android 如何通过在“回收器”视图中单击同一列表中的另一个项目来隐藏列表中的项目?

Android 如何通过在“回收器”视图中单击同一列表中的另一个项目来隐藏列表中的项目?,android,android-recyclerview,Android,Android Recyclerview,我在recycler视图中有一个元素列表,我需要通过单击同一列表中的特定元素来隐藏一些元素。例如,我的列表包含10个元素,我想通过单击第5个位置的元素来隐藏位置6的所有元素。我该怎么做 您必须从数据集中删除该元素并调用notifyOnDataSetChanged方法,否则您可以使用boolean/hide show flag创建一个模型类,然后在项目上单击listener,您可以相应地设置flag以删除/隐藏元素 Recyclerview对notifyDatasetChanged方法作出反应,重

我在recycler视图中有一个元素列表,我需要通过单击同一列表中的特定元素来隐藏一些元素。例如,我的列表包含10个元素,我想通过单击第5个位置的元素来隐藏位置6的所有元素。我该怎么做

您必须从数据集中删除该元素并调用notifyOnDataSetChanged方法,否则您可以使用boolean/hide show flag创建一个模型类,然后在项目上单击listener,您可以相应地设置flag以删除/隐藏元素

Recyclerview对notifyDatasetChanged方法作出反应,重新绘制每个可见行

尝试更改回收器视图的后面模型,然后notifyDatasetChanged

试试这个


你说的隐藏是什么意思?从数据集中删除?请详细说明您的问题。@PankajKumar no。。只是把那些东西藏起来,比如打电话GONE@FaizMir我的意思是,我想通过单击同一列表中的一行来更改某些行的可见性
bindViewHolder(VH holder, int position){
   view.setOnClickListener(new OnClickListener() 
    {
        @Override
        public void onClick(View v) 
        {
            // Do you business to change data model in other position which   
            //identified whether the view must be visible or not

             notifyDataSetChanged();

        }
    });
}
 public void onBindViewHolder(final ViewHolder viewHolder,
                             final int position) {

    viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

           // set your logic like this..

              if(position==5){
                if(list.size()>6){
                    list.remove(6);  // here list will be your data list.
                    notifyDataSetChanged();
                }
            }

        }
    });