为了账号安全,请及时绑定邮箱和手机立即绑定

fragment 中 mRecyclerView.setLayoutManager()报错

代码是按照老师视频来的,稍有改动

只是从MainActivity 变为Fragment

Fragment中 onCreateView代码:

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                           Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_fragment2,
            container, false);
    initDatas();
    mRecyclerView = view.findViewById(R.id.item2);
    mRVAdapter = new RVAdapter(getActivity(),mData);
    mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false));
    mRecyclerView.setItemAnimator(new DefaultItemAnimator());
    mRecyclerView.setAdapter(mRVAdapter);
    mRecyclerView.addItemDecoration(new DividerItemDecoration(getActivity(),DividerItemDecoration.VERTICAL));
    return view;
}

adapter代码:

public class RVAdapter extends RecyclerView.Adapter<MyViewHolder> {

    private Context context;
    private List<String> data;

    public RVAdapter(Context context , List<String> data){
        this.context = context;
        this.data = data;

    }
    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { //创建ViewHolder
        View view = LayoutInflater.from (viewGroup.getContext ()).inflate (R.layout.item2,viewGroup,false);
        MyViewHolder viewHolder = new MyViewHolder(view);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int pos) {   // 绑定viewholder
        holder.tv.setText(data.get(pos));
    }

    @Override
    public int getItemCount() {
        return data.size();
    }
}

class MyViewHolder extends RecyclerView.ViewHolder{
    TextView tv;

    public MyViewHolder(@NonNull View arg0) {
        super(arg0);
        tv = arg0.findViewById(R.id.item2);
    }
}


正在回答

2 回答

我和你一样的问题,解决了,recycler的方法应该写在这里面public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//写在这里
}

0 回复 有任何疑惑可以回复我~

我也遇到了和你差不多的问题,但不知道是不是一样。你可以将xml文件中recyclerview的id改一下,然后再运行试试。有可能是AS自己的问题。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
明日之星-RecyclerView
  • 参与学习       40769    人
  • 解答问题       116    个

带领大家学习百变RecyclerView,绝对干货,告别加班不是梦

进入课程

fragment 中 mRecyclerView.setLayoutManager()报错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信