2016-11-29 3 views
0

Как я могу достичь следующий дизайн макета, где на прокрутку вверх я просто получить вид с SearchView:SearchView внутри координатор макета

1 ----

enter image description here

2 ----- -На Прокрутка вверх:

enter image description here

Я пытался ставить взгляды на определенные места в макете, но SearchView всегда заканчиваются вверх в верхней части зоны, а не под домашним логотипом или даже не видны.

Мой текущий макет без 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> 
+0

Попробуйте [NestedScrollView] (http://stackoverflow.com/a/30574304/6005977) –

+0

может усовершенствовать немного больше, я уже использую nestedscrollview в content_scrolling, который использует назначение: app: layout_behavior = @ string/appbar_scrolling_view_behaviour' – user3820753

ответ

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 you wa нт для прокрутки с панели вкладок

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" /> 
+0

Я просто попробовал это, editText, который я использовал в качестве вида поиска, находится на самом верху (только под строкой состояния), а при прокрутке он исчезает. – user3820753

+0

Добавлен рабочий пример. Со следующими версиями построения градиента: compileSdkVersion 23 buildToolsVersion "23.0.3" – jobbert

+0

Работает ли он сейчас? – jobbert

0

Вы можете использовать NestedScrollView для этой цели наряду с AppBarLayout. Для лучшей совместимости используйте EditText вместо SearchView.

Дополнительная информация here.

Смежные вопросы