popwindow嵌套了recyclerview为何不显示内容?

新手上路,请多包涵

1.popwindow嵌套了recyclerview,但是不显示内容

2.相关代码如下
popwindow布局xml-------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:id="@+id/fl_familyList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignTop="@+id/rl_family"
android:background="@color/colorRlBg">

<RelativeLayout
    android:id="@+id/ly_family_list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/rv_mfamily_list"
            android:layout_width="match_parent"
            android:layout_height="200dp">
        </android.support.v7.widget.RecyclerView><!--家庭列表-->


 </RelativeLayout>

</FrameLayout>

适配器代码--------------------------------------------------------------------------
public class RvFamilyAdapter extends RecyclerView.Adapter<RvFamilyAdapter.ViewHolder>{

private List<Family> mfamilyList;

public RvFamilyAdapter(List<Family> familyList) {
    mfamilyList = familyList;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    //设置RecyclerView的源item.xml
    View view = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.family_familylist_recyclerview_item, parent, false);
    ViewHolder holder = new ViewHolder(view);
    return holder;
}

@Override
public void onBindViewHolder(@NonNull RvFamilyAdapter.ViewHolder holder, int position) {
    //通过position位置找到每个列表子项,并用Intelligent对象存储
    //为子项view设置属性,值为family中存的字段
    holder.tv_family_name.setText(mfamilyList.get(position).getFamilyName());
    holder.tv_family_owner_name.setText(mfamilyList.get(position).getFamilyOwner());
}

@Override
public int getItemCount() {
    return mfamilyList.size();
}
/*ViewHolder内部类是必须实现的*/
static class ViewHolder extends RecyclerView.ViewHolder {
    ImageView iv_family_is_true;
    ImageView iv_family_logo;
    TextView tv_family_name;
    TextView tv_family_character;
    TextView tv_family_owner_name;
    /*
     * 在 ViewHolder内部类里初始化布局中的view
     * */
     ViewHolder(View itemView) {
        super(itemView);
        //注意这里的view和Activity不一样,通过参数itemView来find
        iv_family_is_true = itemView.findViewById(R.id.iv_family_is_true);
        iv_family_logo = itemView.findViewById(R.id.iv_family_logo);
        tv_family_name = itemView.findViewById(R.id.tv_family_name);
        tv_family_character = itemView.findViewById(R.id.tv_family_character);
        tv_family_owner_name = itemView.findViewById(R.id.tv_family_owner_name);
    }
}

}

绑定适配器:-------------------------------------------------------------------------
private void handRecyList(){

    View view = LayoutInflater.from(getActivity()).inflate(R.layout.family_popwindow_view,null);
    RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.rv_mfamily_list);
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
    linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
    recyclerView.setLayoutManager(linearLayoutManager);
    family_adapter = new RvFamilyAdapter(getFamilyList());
    recyclerView.setAdapter(family_adapter);
    family_adapter.notifyDataSetChanged();
}

3.报错信息:RecyclerView: No adapter attached; skipping layout

4.试过很多方法如:把线性布局换成相对布局、初始化时候setadapter、更新数据源family_adapter.notifyDataSetChanged()、clean&&rebuild.........始终找不出原因,难道是因为我把popwindow放在fragment中导致的?找了一周原因了,请大神们帮帮忙吧,不胜感激!

阅读 5.2k
1 个回答

我有几个问题想问你,
1.recyclerview是在popwindows里面吗?
2.你是列表的内容不能显示,还是popwindow根本弹不出来?

你是不是这里没有

clipboard.png
没有设置背景?

下面是我做的一个demo,这个是效果
clipboard.png
代码路径为:
https://github.com/love0829/l...

欢迎star

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题