2017-01-23 10 views
0

Я попытался найти кого-то с тем же вопросом, но не знал, что искать. Если кто-то найдет симлярный вопрос, просто дайте мне знать!Отключить прокрутку панели инструментов при нажатии на нее

Я реализовал панель инструментов из библиотеки дизайн следующим образом:

<android.support.design.widget.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

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

    <android.support.design.widget.TabLayout 
     android:id="@+id/mainTabLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="?attr/colorPrimary" 
     android:minHeight="?attr/actionBarSize" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
     app:tabGravity="fill" /> 

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

и расположение инструментов:

<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/mainToolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:background="?attr/colorPrimary" 
    android:theme="@style/AppTheme.AppBarOverlay" 
    app:layout_scrollFlags="scroll|enterAlways" 
    app:popupTheme="@style/AppTheme.PopupOverlay" /> 

AppBarLayout является прямым потомком к CoordinatorLayout. Ниже AppBar у меня есть RecyclerView, который правильно позволяет AppBar свернуть при прокрутке вверх.

Однако я могу нажать прямо на AppBar, а затем переместить палец вверх, и таким образом панель инструментов рухнет, хотя мой RecyclerView полностью пуст. Я могу снова расширить его, снова прокручивая панель инструментов. Такое поведение не происходит при прокрутке, где находится RecyclerView.

Я надеюсь, что моя проблема понятна. Я использую версию 25.1 библиотеки поддержки. Спасибо!

Редактировать: Я пробовал решения ниже. Ничего не изменил. Внизу я добавил видео, чтобы показать, в чем моя проблема. Так что это действительно о ситуации, когда экран не заполнен (поэтому никакие элементы из RecyclerView не исчезают на экране): Если это так, я не хочу, чтобы панель инструментов вообще скрывалась. Другими словами: скрыть панель инструментов, только если какие-либо элементы из RecyclerView покинут экран.

https://drive.google.com/file/d/0Bzrw-IuZ9USuMURVVkRfb3dkRTQ/view?usp=sharing

Если больше кода требуется с моей стороны просто дайте знать.

+0

Я думаю, что вы ищете поведение Fling. Google это вы найдете готовый код –

+0

Я не думаю, что это моя проблема. Если вы посмотрите на видео (первая часть): RecyclerView не отключается от экрана, но панель инструментов все еще скрывается при прокрутке вверх. Я не хочу этого. @SouravGanguly – Crosswind

ответ

0

Попробуйте Весь проект в этом месте: https://github.com/slidenerd/Android-Design-Support-Library-Demo

Ниже код работает для меня (Этот проект Гит принадлежит slidenered Thanx к нему.):

<android.support.v4.widget.DrawerLayout 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/drawer_layout" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="slidenerd.vivz.navigationviewdemo.FourthActivity"> 

<android.support.design.widget.CoordinatorLayout 
    android:id="@+id/root_coordinator" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/app_bar_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

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

      <ImageView 
       android:layout_width="match_parent" 
       android:layout_height="192dp" 
       android:scaleType="centerCrop" 
       android:src="@drawable/rsz_bg_cover" 
       app:layout_collapseMode="parallax" /> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/app_bar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
       app:layout_collapseMode="pin" /> 

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

     <android.support.design.widget.CollapsingToolbarLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:layout_scrollFlags="scroll|enterAlways"> 

      <android.support.design.widget.TabLayout 
       android:id="@+id/tab_layout" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="@color/colorAccent" 
       app:layout_collapseMode="pin" 
       app:tabIndicatorColor="@color/colorPrimary" 
       app:tabSelectedTextColor="@android:color/white" 
       app:tabTextColor="#EEE" /> 
     </android.support.design.widget.CollapsingToolbarLayout> 

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

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


    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom|right" 
     android:layout_margin="16dp" 
     android:src="@drawable/ic_add_black" 
     app:borderWidth="0dp" 
     app:fabSize="mini" /> 
</android.support.design.widget.CoordinatorLayout> 

<android.support.design.widget.NavigationView 
    android:id="@+id/navigation_drawer" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    app:menu="@menu/menu_drawer" /> 

+0

Не удалось решить мою проблему. Я отредактировал мой вопрос, может быть, это поможет – Crosswind

0

, если вы хотите зафиксировать toolbar при прокрутке appbar

попробовать это:

<android.support.design.widget.CoordinatorLayout 
    ... 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

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

     <android.support.design.widget.CollapsingToolbarLayout 
      ... 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed" 
      app:titleEnabled="false"> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:layout_gravity="top" 
       android:background="?attr/colorPrimary" 
       app:layout_collapseMode="pin" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
       app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" /> 
     </android.support.design.widget.CollapsingToolbarLayout> 
    </android.support.design.widget.AppBarLayout> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recycler_view" 
     android:scrollbars="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 

положить ваши toolbar в а CollapsingToolbarLayout и app:titleEnabled="false"

Установив его на ложь, вы получите желаемое поведение. Заголовок остается фиксированным в верхней части экрана.

вы можете сделать это programetically также:

CollapsingToolbarLayout.setTitleEnabled(false); 
+0

@ Crosswind сработало? – rafsanahmad007

+0

не работает.Я отредактировал свой вопрос и добавил видео. Может быть, меня неправильно поняли? Спасибо за вашу помощь! – Crosswind