android - 用于下方元素的 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下方时折叠。我怎样才能做到这一点?
解决方案
推荐阅读
- wordpress - Woocommerce - 更改“允许延期交货”的排序顺序?下拉 - 需要允许,但首先通知客户
- mongodb - 从 Spring Boot 2.2.x 升级到 2.3x 的 MongoDB 问题
- linux - 在 Alpine Linux 容器中安装特定的 GCC/G++ 版本
- java - 如何验证 Spring MVC 中数字字段中的非数字输入?
- android - local_auth: MainActivity.kt: (11, 48): 类型不匹配:推断类型是 FlutterEngine 但 PluginRegistry!预计
- python - 如何用另一种类型的值覆盖 C# 中的变量?
- c# - 如何将数据传递给泛型?
- android - 单击按钮验证不起作用
- vue.js - Vue Cool Lightbox - TypeError:无法读取未定义的属性“匹配”
- python - 在python中将数据转换为DataFrame