【已解决】 Android Studio:LinearLayout内的RecycleView item点击后无响应
   跟着b站大锯视频写的,不知道为什么点击事件无响应,点了item后会显示下列语句

去网上查了方法,在item的根布局加了下面一句代码
android:descendantFocusability="blockDescendants"
如下图

加在了item.xml的根元素上,不过小白俺不知道加的位置对不对,干脆给嵌套有RecycleView的LinearLayout和ScrollView也加了上面那句代码,如下图,依旧没解决(嵌套有RecycleView的LinearLayout也是位于一个ScorllView里面的)

求大佬相助qaq
适配器代码如下
package com.example.animaland.Adapters;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.example.animaland.R;
import com.example.animaland.room.ShellStudyRoom;
import com.example.animaland.room.room;
import java.util.List;
public abstract class RecycleViewBaseAdapter extends RecyclerView.Adapter<RecycleViewBaseAdapter.InnerHolder> {
    private final List<room> mdata;
    private onItemClickListener monItemClickListener;
    public RecycleViewBaseAdapter(List<room> roomData){
        this.mdata=roomData;
    }
    @NonNull
    @Override
    public RecycleViewBaseAdapter.InnerHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        
        View view=getSubView(parent,viewType);
        return new InnerHolder(view);
    }
    protected abstract View getSubView(ViewGroup parent,int ViewType);
    @Override
    public void onBindViewHolder(@NonNull RecycleViewBaseAdapter.InnerHolder holder, int position) {
        //绑定holder
        holder.setData(mdata.get(position),position);
    }
    @Override
    public int getItemCount() {
        if(mdata!=null)
            return mdata.size();
        return 0;
    }
    public void setOnItemClickListener(onItemClickListener listener) {
        //设置一个监听
        this.monItemClickListener=listener;
    }
    public interface onItemClickListener{
        void onItemClick(int position);
    }
    public class InnerHolder extends RecyclerView.ViewHolder {
        private TextView idView;
        private TextView roomNameView;
        private TextView memberNumberView;
        private ImageView imageView;
        private int mposition;
        public InnerHolder(@NonNull View itemView) {
            super(itemView);
            //找到条目的控件
            idView= itemView.findViewById(R.id.room_id);//房间ID
            roomNameView= itemView.findViewById(R.id.room_name);//房间名字
            memberNumberView= itemView.findViewById(R.id.room_memberNumber);//房间人数
            imageView=itemView.findViewById(R.id.room_background);
            itemView.setOnClickListener(view -> {
                if (monItemClickListener != null) {
                    monItemClickListener.onItemClick(mposition);
                }
            });  
        }
        public void setData(room room,int position) {
            this.mposition=position;
            idView.setText("ID: "+room.id);
            roomNameView.setText(room.roomName+"");
            memberNumberView.setText(room.roomMember+"/4");
            imageView.setImageResource(room.icon);
        }
    }
}
补充下Activity里的代码
package com.example.animaland.room;
import android.app.Activity;
import android.app.AppComponentFactory;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.widget.ScrollView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.example.animaland.Adapters.GridViewAdapter;
import com.example.animaland.Adapters.ListViewAdapter;
import com.example.animaland.Adapters.RecycleViewBaseAdapter;
import com.example.animaland.MainActivity;
import com.example.animaland.R;
import java.util.ArrayList;
import java.util.List;
public class TreeHouseStudyRoom extends AppCompatActivity{
    private RecyclerView mlist;
    private List<room> mroomList;
    private RecycleViewBaseAdapter madapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.treehouse_study_room);
        mlist=findViewById(R.id.rv_treehouse);
        
        initData();//模拟数据
        showGrid(true,false);
    }
    //模拟数据
    private void initData() {
        mroomList= new ArrayList<>();//创建房间数据集合
        for(int i=0;i<8;i++){
            room roomData=new room();
            roomData.id=i;
            roomData.roomName="珊迪的树屋";
            roomData.roomMember=i%4+1;
            roomData.icon=roomPictures.roomPics[1];//加载图片
            mroomList.add(roomData);//将房间数据添加到房间数据集合中
        }
    }
    private void initListener() {
        
       madapter.setOnItemClickListener(position -> {
            //当条目被点击后展示下列效果
            Toast.makeText(TreeHouseStudyRoom.this,"ID "+position+" 被点击了",Toast.LENGTH_SHORT).show();
        });
    }
    private void showGrid(boolean isVertical,boolean isReverse) {
        //设置布局管理器
        GridLayoutManager layoutManager=new GridLayoutManager(this,3);
        //设置水平还是垂直
        layoutManager.setOrientation(isVertical?GridLayoutManager.VERTICAL:GridLayoutManager.HORIZONTAL);
        //设置正向还是反向
        layoutManager.setReverseLayout(isReverse);
        mlist.setLayoutManager(layoutManager);
        //创建适配器Adapter
        madapter=new GridViewAdapter(mroomList);
        //设置适配器
        mlist.setAdapter(madapter);
        //创建条目的点击事件
        initListener();
    }
}
QAQ家人们终于解决了
我的item布局是一个占满item的图片,上面叠了三个文字。偶然发现,点击事件并非无响应,而是只有点击item之间的空隙才会有Toast弹出 于是我把红框框圈出来的“itemView”改成了“imageView”即第一个红框框所圈出来的变量 实现了我想要的点击item有响应的效果
item布局添加上clickable=true?
点击事件呢?