5

Как скрыть панель инструментов после свертывания во время recyclerView прокрутки вниз, показать панель инструментов, когда recyclerView прокрутки вверх и развернуть CollapsingToolbarLayout в конце списка? Теперь CollapsingToolbarLayout просто разрушается, а панель инструментов показывает все время прокрутки.Как скрыть панель инструментов после свертывания, в то время как recyclerView прокручивается вниз

<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:id="@+id/coordinatorlayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".screens.MainActivity"> 

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

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsing_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:fitsSystemWindows="true" 
      android:minHeight="@dimen/actionBarHeight" 
      app:contentScrim="@color/colorPrimary" 
      app:expandedTitleTextAppearance="@style/TransparentText" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

      <ImageView 
       android:id="@+id/toolbar_image" 
       android:layout_width="match_parent" 
       android:layout_height="180dp" 
       android:adjustViewBounds="true" 
       android:background="#229944" 
       android:contentDescription="@null" 
       android:scaleType="fitCenter"/> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="@dimen/actionBarHeight" 
       android:minHeight="@dimen/actionBarHeight" 
       app:layout_collapseMode="pin" 
       app:layout_scrollFlags="scroll|enterAlwaysCollapsed" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> 

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

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:layout_gravity="bottom" 
      app:layout_scrollFlags="scroll" /> 

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

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/content" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

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

может быть удалено 'app: layout_collapseMode =" pin "' должен работать. Просто идея. –

ответ

1

Возможно, вы захотите изменить поведение панели инструментов. Вы можете обеспечить поведение прокрутки, изменив layout_scrollFlags.

app:layout_scrollFlags="scroll|enterAlways" 

Удалить pin и сделать это изменение в вашей панели инструментов, и он будет работать!

+0

Не работает ( – preceptron

0
  • Добавить android:fitsSystemWindows="true" в CoordinatorLayout.
  • Удалить app:layout_scrollFlags="scroll|enterAlwaysCollapsed" от Toolbar.
  • Переместить TabLayout внутри CollapsingToolbarLayout.

    <android.support.design.widget.AppBarLayout 
        android:id="@+id/appbarlayout" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:fitsSystemWindows="true" 
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 
    
        <android.support.design.widget.CollapsingToolbarLayout 
         android:id="@+id/collapsing_toolbar" 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" 
         android:fitsSystemWindows="true" 
         android:minHeight="@dimen/actionBarHeight" 
         app:contentScrim="@color/colorPrimary" 
         app:expandedTitleTextAppearance="@style/TransparentText" 
         app:layout_scrollFlags="scroll|exitUntilCollapsed"> 
    
         <ImageView 
          android:id="@+id/toolbar_image" 
          android:layout_width="match_parent" 
          android:layout_height="180dp" 
          android:adjustViewBounds="true" 
          android:background="#229944" 
          android:contentDescription="@null" 
          android:scaleType="fitCenter"/> 
    
         <android.support.v7.widget.Toolbar 
          android:id="@+id/toolbar" 
          android:layout_width="match_parent" 
          android:layout_height="@dimen/actionBarHeight" 
          android:minHeight="@dimen/actionBarHeight" 
          app:layout_collapseMode="pin" 
          app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> 
    
         <android.support.design.widget.TabLayout 
          android:id="@+id/tabs" 
          android:layout_width="match_parent" 
          android:layout_height="?attr/actionBarSize" 
          android:layout_gravity="bottom" 
          app:layout_scrollFlags="scroll" /> 
    
        </android.support.design.widget.CollapsingToolbarLayout> 
    
    </android.support.design.widget.AppBarLayout> 
    
    <android.support.v7.widget.RecyclerView 
        android:id="@+id/content" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 
    

+0

Это не работает (панель инструментов в любом случае), а панель инструментов наложения TabBar, потому что CollapsingToolbarLayout - это FrameLayout. – preceptron

+0

@preceptron в вашем коде, он не показывает никаких признаков 'FrameLayout' –

2

Это должно работать отлично. Протестировано и работает в API 17

<android.support.design.widget.CoordinatorLayout 
    android:id="@+id/careers_coordinator_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    tools:context=".activity.CareersActivity" 
    xmlns:tools="http://schemas.android.com/tools"> 

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

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

      <ImageView 
       android:id="@+id/background" 
       android:layout_width="match_parent" 
       android:layout_height="256dp" 
       android:scaleType="centerCrop" 
       android:fitsSystemWindows="true" 
       app:layout_collapseMode="parallax" 
       android:src="@drawable/placeholder"/> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       app:contentScrim="?attr/colorPrimary" 
       android:fitsSystemWindows="true" 
       app:titleTextColor="@color/main_color_white" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
       app:layout_collapseMode="pin"/> 

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

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="?attr/colorPrimary" 
      app:tabIndicatorColor="@color/colorAccent" 
      app:tabSelectedTextColor="@color/colorAccent" 
      app:tabTextColor="@android:color/white" 
      app:tabIndicatorHeight="4dp" 
      app:tabMode="fixed"/> 

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

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

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

Для CollapsingToolbarLayout использования флагов прокрутки:

сочетание
app:layout_scrollFlags="scroll|enterAllwaysCollapsed" 

этот флаг исчезнет панель при прокрутке вниз. И CollapsingToolbarLayout полностью развернется, когда вы перейдете к началу списка.

И нет необходимости удалять app:layout_collapseMode="pin" из Toolbar, потому что collapseMode флагов для определения поведения и размещения взглядов внутри CollapsingToolbarLayout и не будут влиять на фактическое Сворачивание и расширение CollapsingToolbarLayout.

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

  • Нет связанных вопросов^_^