android - java.lang.IllegalStateException : RecyclerView has no LayoutManager in Fragment 错误

标签 android android-fragments android-5.0-lollipop android-recyclerview

我正在将一个 Activity 更改为一个 Fragment,并在我膨胀 RecyclerView 后立即收到以下错误。

@Override
public View onCreateView(LayoutInflater inflater, 
          ViewGroup container, Bundle savedInstanceState) {

    ----> View rootView = inflater.inflate(R.layout.layout_containing_recyclerview, 
                    container, false); 

java.lang.IllegalStateException: RecyclerView has no LayoutManager

在我将 Activity 更改为 Fragment 之前,膨胀进行得很好。

一些进一步的研究表明,从 recyclerview 布局中删除我所有的子元素有助于解决问题。但是我不明白为什么这会改变任何事情以及为什么它确实适用于以前的 Activity 。

有效

<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/my_recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="true"   
    android:scrollbars="vertical" >    

</android.support.v7.widget.RecyclerView>

不起作用

<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/my_recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="true"   
    android:scrollbars="vertical" >    


<View
    android:id="@+id/randomview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center" />

</android.support.v7.widget.RecyclerView>

我在这里遗漏了什么吗?

最佳答案

这个问题已经很老了,但是为了仍然面临这个问题的人们的利益,我想我会留下一个答案。我刚刚学习 Android 开发,这个问题令人沮丧。后来我发现你不应该在 RecyclerView 下添加任何 View 或 View 组。 .您希望在 RecyclerView 下显示的布局需要在独立的资源文件中单独定义。

然后在适配器实现中(扩展 RecyclerView.Adapter<> 的那个,在覆盖方法 public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) 中,当您为 View 扩充布局时(这是为回收站 View 的每个项目扩充布局),您可以指定您创建的上述单独布局。Android 然后为需要添加到回收站 View 的每个项目扩充此布局。

This article帮助我清楚地看到了这一点。

关于android - java.lang.IllegalStateException : RecyclerView has no LayoutManager in Fragment 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27563853/

相关文章:

android - relativeLayout边距问题,文本渗入其他 "fields"

android - 如何以编程方式更改 MvxTabsFragmentActivity 中的选项卡?

android - SupportLifecycleFragmentImpl 在使用谷歌对话框启用位置时自动添加 fragment

android - Android L 中的警报对话框按钮问题

android - 添加两个具有不同主题的 AppCompat 工具栏

android - Firebase:无法初始化崩溃报告

android - 如何使用回收站 View 自定义抽屉布局?

Android:如何检测设备是 WiFi 还是 WiFi+Cellular

android - fragment 已经添加,对话框 fragment ?

Android L 的涟漪效应 - 按钮的触摸反馈 - 使用 XML