RecyclerView将复选框推出屏幕

时间:2018-07-29 16:16:19

标签: android android-layout android-recyclerview android-checkbox fastadapter

在使用FastAdapter的Android应用中,我试图在RecyclerView下方显示3个复选框。

这应该使用户可以按获胜,失败和平局筛选游戏列表。

但是,全屏高度由RecyclerView填充(请注意以下非英文文本):

app screenshot

这3个复选框仅在开始时显示,而数据是通过HTTP加载的。然后它们消失了,好像RecyclerView将它们推开或覆盖了一样。

下面是我的布局文件,如何解决我的问题?如果宽度足够大(例如,一些灵活的布局,这会自动使行折断),我也希望3个复选框排成一排:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

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

    <CheckBox
        android:id="@+id/wonBox"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Wins" />

    <CheckBox
        android:id="@+id/lostBox"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Losses" />

    <CheckBox
        android:id="@+id/drawBox"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Draws" />

</LinearLayout>

更新:

RelativeLayout沙发没有运气(复选框覆盖了列表):

app screenshot 2

2 个答案:

答案 0 :(得分:1)

已编辑: 这不是最好的解决方案,但可以。 像这样使用android:layout_height

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="4"
        android:scrollbars="vertical" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="vertical">

        <CheckBox
            android:id="@+id/wonBox"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Wins" />

        <CheckBox
            android:id="@+id/lostBox"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Losses" />

        <CheckBox
            android:id="@+id/drawBox"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Draws" />

    </LinearLayout>

</LinearLayout>

答案 1 :(得分:1)

使用相对布局:

<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentTop="true"
    android:layout_above="@+id/llbottom"
    android:scrollbars="vertical" />

<LinearLayout
    android:id="@+id/llbottom"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:orientation="vertical">

    <CheckBox
        android:id="@+id/wonBox"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Wins" />

    <CheckBox
        android:id="@+id/lostBox"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Losses" />

    <CheckBox
        android:id="@+id/drawBox"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Draws" />

</LinearLayout>