首页 > 解决方案 > 用于下方元素的 Android AppBar 布局 ScrollFlag

问题描述

我有这个 appbar 布局;

<com.google.android.material.appbar.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/white"
    android:theme="@style/Theme.Kafein.AppBarOverlay">

    <LinearLayout
      android:id="@+id/search"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:elevation="2dp"
      android:gravity="center_vertical"
      android:orientation="vertical"
      android:translationZ="3dp">

      <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingHorizontal="24dp"
        android:paddingVertical="16dp">

        <ImageView
          android:layout_width="100dp"
          android:layout_height="30dp"
          android:src="@drawable/logo" />

        <ImageView
          android:id="@+id/search_icon"
          android:layout_width="24dp"
          android:layout_height="24dp"
          android:layout_alignParentEnd="true"
          android:layout_centerVertical="true"
          android:src="@drawable/icon_search" />
      </RelativeLayout>
    </LinearLayout>

    <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:paddingBottom="16dp"
      app:layout_scrollFlags="scroll|enterAlways|snap">

      <EditText
        android:id="@+id/top_search"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginHorizontal="24dp"
        android:background="@drawable/bg_search"
        android:textColor="@color/gray_dark"
        android:textColorHint="@color/gray"
        android:drawableStart="@drawable/icon_search"
        android:drawablePadding="12dp"
        android:focusable="false"
        android:fontFamily="@font/inter"
        android:hint="@string/home_search"
        android:padding="12dp"
        android:textSize="14sp" />
    </LinearLayout>
  </com.google.android.material.appbar.AppBarLayout>

我想要的是在用户滚动时折叠第二个 LinearLayout(使用 EditText)。但是上面的代码不起作用,没有任何崩溃。

当我这样做时,它会起作用;

  <com.google.android.material.appbar.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/white"
    android:theme="@style/Theme.Kafein.AppBarOverlay">

    <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:paddingBottom="16dp"
      app:layout_scrollFlags="scroll|enterAlways|snap">

      <EditText
        android:id="@+id/top_search"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginHorizontal="24dp"
        android:background="@drawable/bg_search"
        android:drawableStart="@drawable/icon_search"
        android:drawablePadding="12dp"
        android:focusable="false"
        android:fontFamily="@font/inter"
        android:hint="@string/home_search"
        android:padding="12dp"
        android:textColor="@color/gray_dark"
        android:textColorHint="@color/gray"
        android:textSize="14sp" />
    </LinearLayout>

    <LinearLayout
      android:id="@+id/search"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:elevation="2dp"
      android:gravity="center_vertical"
      android:orientation="vertical"
      android:translationZ="3dp">

      <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingHorizontal="24dp"
        android:paddingVertical="16dp">

        <ImageView
          android:layout_width="100dp"
          android:layout_height="30dp"
          android:src="@drawable/logo" />

        <ImageView
          android:id="@+id/search_icon"
          android:layout_width="24dp"
          android:layout_height="24dp"
          android:layout_alignParentEnd="true"
          android:layout_centerVertical="true"
          android:src="@drawable/icon_search" />
      </RelativeLayout>
    </LinearLayout>

  </com.google.android.material.appbar.AppBarLayout>

但是我希望带有EditText的LinearLayout在它位于另一个LinearLayout下方时折叠。我怎样才能做到这一点?

标签: androidxmlandroid-collapsingtoolbarlayoutandroid-appbarlayout

解决方案


推荐阅读