工具栏中的搜索选项作为第二行
Search option in toolbar as second line
我已经使用工具栏作为搜索选项,但我无法理解的是如何在工具栏第二行中获取搜索菜单,如下所示。
我已经使用 SearchDialog
并完成了,但结果如下所示。
[2
但它像这样重叠
我必须使用折叠栏吗? SearchView
和 SearchDialog
都试过了,但不确定如何获得上述结果。
这是我的工具栏 xml 代码。
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/Theme.GoodIes.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/teal_200"
app:popupTheme="@style/TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse" />
</com.google.android.material.appbar.AppBarLayout>
您可以在 Toolbar
中添加子组件,如下所示:
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="#F45465"
app:popupTheme="@style/TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="#000000"
android:text="Title"
android:textStyle="bold"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="#000000"
android:text="Subtitle"
android:textStyle="bold"/>
</LinearLayout>
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout>
有很多方法可以像您的示例那样归档视图,通常我只使用 Cardview 和一些 TextView 来自定义我的工具栏。
编辑
对于折叠工具栏,您需要 CoordinatorLayout 和 CollapsingToolbarLayout,因此您需要执行以下操作:
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
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"
android:background="@color/colorPrimary">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<com.google.android.material.appbar.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleTextAppearance="@android:color/transparent"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:layout_width="match_parent"
android:layout_height="250dp"
android:scaleType="fitXY"
android:contentDescription="@string/image_desc_movie_detail"
app:layout_collapseMode="parallax"
android:layout_marginBottom="1dp"/>
<androidx.appcompat.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
Your content here ...
</androidx.core.widget.NestedScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
简而言之,CollapsingToolbarLayout里面有ImageView和Toolbar。当您的内容滚动时,ImageView 将 hide/show。 Google上有很多很长的解释,你会找到一个。
我已经使用工具栏作为搜索选项,但我无法理解的是如何在工具栏第二行中获取搜索菜单,如下所示。
我已经使用 SearchDialog
并完成了,但结果如下所示。
[
但它像这样重叠
我必须使用折叠栏吗? SearchView
和 SearchDialog
都试过了,但不确定如何获得上述结果。
这是我的工具栏 xml 代码。
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/Theme.GoodIes.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/teal_200"
app:popupTheme="@style/TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse" />
</com.google.android.material.appbar.AppBarLayout>
您可以在 Toolbar
中添加子组件,如下所示:
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="#F45465"
app:popupTheme="@style/TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="#000000"
android:text="Title"
android:textStyle="bold"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="#000000"
android:text="Subtitle"
android:textStyle="bold"/>
</LinearLayout>
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout>
有很多方法可以像您的示例那样归档视图,通常我只使用 Cardview 和一些 TextView 来自定义我的工具栏。
编辑
对于折叠工具栏,您需要 CoordinatorLayout 和 CollapsingToolbarLayout,因此您需要执行以下操作:
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
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"
android:background="@color/colorPrimary">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<com.google.android.material.appbar.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleTextAppearance="@android:color/transparent"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:layout_width="match_parent"
android:layout_height="250dp"
android:scaleType="fitXY"
android:contentDescription="@string/image_desc_movie_detail"
app:layout_collapseMode="parallax"
android:layout_marginBottom="1dp"/>
<androidx.appcompat.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
Your content here ...
</androidx.core.widget.NestedScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
简而言之,CollapsingToolbarLayout里面有ImageView和Toolbar。当您的内容滚动时,ImageView 将 hide/show。 Google上有很多很长的解释,你会找到一个。