RecyclerView重叠下面的元素

时间:2018-02-01 15:50:34

标签: android layout android-recyclerview

我想要两个简单的布局元素。

1.通过代码变得更大的RecyclerView。
2.在RecyclerView下面带有微调器的LinearLayout。这些微调器应始终可见。

当RecyclerView变大时,它会与Spinler的LinearLayout重叠。 有没有办法限制RecyclerView的最大高度?

必须有一个简单的解决方案,我觉得有点愚蠢,因为这应该很容易。

编辑: 我设法通过使用负边距来实现我所需要的。有没有办法获得wrap_content-layout元素的正确dp?这是否适用于所有设备和Android版本?

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

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="2">
    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/header1"/>
    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/header2"/>
</LinearLayout>

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

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_marginTop="-32dp"
    android:weightSum="2">

    <Spinner
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/spinner_1"
        android:layout_weight="1"/>

    <Spinner
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/spinner_2"
        android:layout_weight="1"/>
</LinearLayout>

</LinearLayout>

1 个答案:

答案 0 :(得分:1)

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="2">
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/header1"/>
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/header2"/>
    </LinearLayout>

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

    <LinearLayout
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:orientation="horizontal"
        android:weightSum="2">

        <Spinner
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:id="@+id/spinner_1"
            android:layout_weight="1"/>

        <Spinner
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:id="@+id/spinner_2"
            android:layout_weight="1"/>
    </LinearLayout>

</LinearLayout>