协调器布局

时间:2016-11-29 10:17:30

标签: android layout android-coordinatorlayout

如何实现以下布局设计,在向上滚动时,我只需使用searchview获取视图:

1 ----

enter image description here

2 ------在向上滚动:

enter image description here

我已尝试在布局中的某些位置放置视图,但searchview始终位于最顶部区域,而不是低于主页徽标或甚至不可见。

我目前没有任何搜索视图的布局是:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.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="#CFD8DC"
android:fitsSystemWindows="true"
tools:context="com.example.svatts.my22.ScrollingActivity">

<android.support.design.widget.AppBarLayout
    android:id="@+id/app_bar"
    android:layout_width="match_parent"
    android:layout_height="@dimen/app_bar_height"
    android:fitsSystemWindows="true"
    android:theme="@style/AppTheme.AppBarOverlay">


    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/toolbar_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        app:contentScrim="?android:attr/colorPrimary"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="56dp"
                app:layout_collapseMode="pin"

                app:popupTheme="@style/AppTheme.PopupOverlay">

            </android.support.v7.widget.Toolbar>


    </android.support.design.widget.CollapsingToolbarLayout>

  </android.support.design.widget.AppBarLayout>

  <include layout="@layout/content_scrolling" />

</android.support.design.widget.CoordinatorLayout>

2 个答案:

答案 0 :(得分:0)

将整个工具栏更改为以下内容并注意以下一行:

app:layout_scrollFlags="scroll|enterAlways|snap"



<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|enterAlways|snap">

然后在你的工具栏下添加你的视图,tabMode可滚动,如下所示:

<your.search.layout
        android:id="@+id/your_search_layout_id"
        android:layout_width="match_parent"
        android:layout_height="your_height"
        app:tabMode="scrollable"/>

并将以下布局添加到您要使用标签栏滚动的content_scrolling

app:layout_behavior="@string/appbar_scrolling_view_behavior" 

工作示例

<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|enterAlways|snap">

    </android.support.v7.widget.Toolbar>

    <android.support.design.widget.TabLayout
        android:id="@+id/tab_layout_main"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabMode="scrollable"/>
</android.support.design.widget.AppBarLayout>


<android.support.v4.view.ViewPager
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" />

答案 1 :(得分:0)

您可以将 NestedScrollView AppBarLayout 一起用于此目的。为了更好的兼容性,请使用 EditText 而不是 SearchView

更多信息here