2015-12-21 1 views
0

Итак, у меня есть основной макет деятельности с использованием CoordinatorLayout, чтобы отобразить панель инструментов и вкладки под ним:панель инструментов не скрывает от прокручивания списка

<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:local="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      android:elevation="0dp" 
      local:layout_scrollFlags="scroll|enterAlways" 
      local:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="?attr/colorPrimary" 
      android:elevation="4dp" 
      local:tabMode="fixed" 
      local:tabGravity="fill"/> 

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

    <android.support.v4.view.ViewPager 
     android:id="@+id/viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:foreground="@drawable/header_shadow" 
     local:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

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

Тогда у меня есть 2 макеты фрагментов, каждый из которых для каждого из 2 я буду иметь вкладки. Один фрагмент отображает ListView на его содержание:

<FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:foreground="@drawable/header_shadow" 
    tools:context=".StationsFragment"> 

    <android.support.v4.widget.SwipeRefreshLayout 
     android:id="@+id/swipe_refresh_layout" 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent"> 

     <ListView 
      android:id="@+id/stations_listview" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 

    </android.support.v4.widget.SwipeRefreshLayout> 

</FrameLayout> 

Я хочу, чтобы моя скрытие, когда я прокрутить ListView выше, и это должно быть в порядке с кодом у меня есть, по крайней мере, от того, что я прочитал в этом answer, но он не работает. На данный момент я попытался удалить FrameLayout из активности фрагмента, но это не решило проблему. Я рассмотрел жесткое кодирование события прокрутки из списка, но, если возможно, я действительно хочу, чтобы это работало без кода.

Заранее спасибо.

+0

Humm попробовать с layout_scrollFlags = «свиткой | enterAlwaysCollapsed» в вашем XML – Coeus

+0

@Coeus не работает: /, спасибо за ответ – yat0

ответ

1

Это потому, что вы используете CoordinatorLayout с ListView. Вы можете изменить свою реализацию на RecyclerView, чтобы получить правильный свиток.

проверить мой ответ here. Это может вам помочь.

+0

, так что это невозможно с помощью 'ListView', если не будет жестко кодировать событие прокрутки, правильно? Я использую ListView, потому что я никогда не работал с «RecyclerView», но, похоже, мне придется его использовать. – yat0

+0

Thats true. мы должны перейти к «RecyclerView», чтобы воспользоваться возможностями, предоставляемыми вместе с «панелью инструментов». Этот эффект прокрутки работает только с детьми «NestedScrollingChild» – sha

+0

ок, я понимаю, спасибо за ваш ответ – yat0

0

изменение попытка из

local:layout_scrollFlags="scroll|enterAlways" 

в

local:layout_scrollFlags="scroll|exitUntilCollapsed" 
+0

не работает: /, спасибо за ответ – yat0

+0

попробуйте добавить вложенный свиток в свой фрагмент , Проверьте мое редактирование –

+0

сообщите мне, когда закончите. –