我注射的RecyclerView没有出现?

时间:2016-05-05 16:55:11

标签: android xml view android-recyclerview relativelayout

这是我的xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:baselineAligned="false"
    android:orientation="horizontal">


    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:dividerHeight="10dp"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        tools:showIn="@layout/content_main">


        <android.support.v4.widget.DrawerLayout

            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/DrawerLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:elevation="7dp">


            <!-- Framelayout to display Fragments -->
            <FrameLayout
                android:id="@+id/frame_container"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">


                <include
                    android:id="@+id/tool_bar"
                    layout="@layout/tool_bar"></include>
            </LinearLayout>


            <android.support.v7.widget.RecyclerView
                android:id="@+id/RecyclerView"
                android:layout_width="320dp"
                android:layout_height="match_parent"
                android:layout_gravity="left"

                android:background="#ffffff"
                android:scrollbars="vertical">


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


        </android.support.v4.widget.DrawerLayout>


    </RelativeLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/threadRecyclerView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scrollbars="vertical" />


    </RelativeLayout>
</LinearLayout>

我做这个设计的主要原因是试图显示

<android.support.v7.widget.RecyclerView
                android:id="@+id/threadRecyclerView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:scrollbars="vertical" />

正确。但是,当它根本没有显示时。在添加两个relativelayouts之前,我有一个相对布局,并且recyclelerview确实显示了,但是对于列表中的每个项目它都是match_parent并且无法修复它。如何正确显示我的视图?

1 个答案:

答案 0 :(得分:2)

问题可能与layout_height="wrap_content"上的RecyclerView有关。您需要使用setAutoMeasureEnabled(true) wrap_contentRecyclerView一起正常使用。

这是一个例子:

RecyclerView threadRecyclerView = (RecyclerView)findViewById(R.id.threadRecyclerView);
threadRecyclerView.getLayoutManager().setAutoMeasureEnabled(true);

你的XML应该是这样的:

<android.support.v7.widget.RecyclerView
    android:id="@+id/threadRecyclerView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:scrollbars="vertical" 
    app:layoutManager="LinearLayoutManager"/>

希望有所帮助。 :)

请注意,setAutoMeasureEnabled仅适用于Android Support Library +23.2