Android滚动比recyclerview更远

时间:2018-09-11 10:48:00

标签: android android-recyclerview

我当前的布局文件如下。 ImageButton将一个新条目添加到recyclerview。问题是,当recyclerview有6个条目时,所有空间都被它吸收,并且ImageButton进入屏幕下方,并且无法滚动查看它。

这是5个项目的结果

5 Items in recyclerview

这是按下加号按钮后的结果

6 items in recyclerview

如您所见,加号按钮在屏幕下方消失了。允许用户滚动使其可见的最佳方法是什么?因为滚动现在不起作用。

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".AddWheelActivity"
    android:layout_marginTop="15dp"
    android:orientation="vertical">

    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cardCornerRadius="5dp"
        android:layout_margin="15dp"
        android:backgroundTint="@color/greeny">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/add_title_text"
                android:layout_margin="15dp"
                android:textAlignment="center"
                android:textSize="20dp"
                />
            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="15dp"
                android:layout_marginRight="15dp"
                android:layout_marginTop="15dp"
                android:textSize="35dp"
                android:lines="1"
                android:inputType="textCapSentences"/>
        </LinearLayout>
    </android.support.v7.widget.CardView>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"

        android:layout_margin="15dp">

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

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/add_option_text"
                android:layout_margin="15dp"
                android:textAlignment="center"
                android:textSize="20dp"
                />

            <android.support.v7.widget.RecyclerView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/options_recyclerView"
                android:orientation="vertical">
            </android.support.v7.widget.RecyclerView>
            <ImageButton
                android:id="@+id/button_add_option"
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:src="@drawable/icon_plus"
                android:scaleType="centerCrop"
                android:background="@null"
                android:layout_gravity="right"
                android:layout_margin="15dp"/>

        </LinearLayout>
    </LinearLayout>

</LinearLayout>

4 个答案:

答案 0 :(得分:0)

在这种情况下,最佳做法是使“图像”按钮粘滞/浮动,用户无需滚动到视图底部即可添加新项目。如果您仍然希望将其放在回收站视图的底部,则可以将其包装在滚动视图中,或者将其作为回收站视图的最后一项。

答案 1 :(得分:0)

您需要使用ScrollView

<ScrollView
android:id="@+id/scrollView1"
android:background="#000000"
android:layout_width="match_parent"
android:fillViewport="true" <!-- here -->
android:layout_height="match_parent" >

...

</ScrollView>

look here

答案 2 :(得分:0)

简单的解决方案,如下所示编辑您的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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".AddWheelActivity"
android:layout_marginTop="15dp"
android:orientation="vertical">

<android.support.v7.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:cardCornerRadius="5dp"
    android:layout_margin="15dp"
    android:backgroundTint="@color/greeny">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/add_title_text"
            android:layout_margin="15dp"
            android:textAlignment="center"
            android:textSize="20dp"
            />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp"
            android:layout_marginTop="15dp"
            android:textSize="35dp"
            android:lines="1"
            android:inputType="textCapSentences"/>
    </LinearLayout>
</android.support.v7.widget.CardView>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:layout_margin="15dp">

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

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/add_option_text"
            android:layout_margin="15dp"
            android:textAlignment="center"
            android:textSize="20dp"
            />

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

    </LinearLayout>
</LinearLayout>
            <ImageButton
            android:id="@+id/button_add_option"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:src="@drawable/icon_plus"
            android:scaleType="centerCrop"
            android:background="@null"
            android:layout_gravity="right"
            android:layout_margin="15dp"/>

答案 3 :(得分:0)

使用NestedScrollView

执行以下操作:

<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        ... other elements

        <androidx.recyclerview.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>