0

Я использую ниже макет, чтобы использовать эффект всплывающей панели инструментов, но не могу расширить панель инструментов. Я хочу развернуть панель инструментов, как показано здесь, для сбрасывания эффекта панели инструментов. https://guides.codepath.com/android/Handling-Scrolls-with-CoordinatorLayoutПанель инструментов не прокручивается при использовании эффекта сбрасывания панели инструментов

<android.support.design.widget.CoordinatorLayout 
    android:id="@+id/coordinatorLayout" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="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="192dp" 
     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" 
      app:contentScrim="?attr/colorPrimary" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

      <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_collapseMode="pin"/> 

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

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabLayout" 
      android:scrollbars="horizontal" 
      android:layout_below="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@color/primaryColor" 
      app:layout_scrollFlags="scroll|enterAlways" /> 

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

    <android.support.v4.view.ViewPager 
     android:id="@+id/tabanim_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

следуют стандартные документы: http://android-developers.blogspot.in/2015/05/android -design-support-library.html – Harry

+0

И просмотр пейджера не похож на список или прокрутку, поэтому панель инструментов не будет работать так. Вы должны указать его во фрагментах, в которых вы использовали просмотр ресайклеров или вложенное scrollview. – Harry

+0

[Связанная информация о 'NestedScrollView'] (http://stackoverflow.com/a/30646837/383414), о которой упоминал @Harry. –

ответ

0

Я полагаю, что вид с app:layout_behavior="@string/appbar_scrolling_view_behavior" должен быть прокручиваемым по вертикали, что ViewPager нет. Я не совсем уверен, поможет ли упаковка ViewPager в некоторые ScrollView. Скорее всего, это вызовет некоторые проблемы с обработкой сенсорных событий. Если страница в вашем ViewPager прокручивается, вы должны установить app:layout_behavior прямо в ее прокручиваемое представление, но я не уверен, что это сработает так, как ожидалось. Эффект разрушающейся панели инструментов не предназначен для работы таким образом, и он еще не идеален даже при использовании по назначению.

+1

'ScrollView' не поддерживает это, но есть [' NestedScrollView', который будет его поддерживать] (http://stackoverflow.com/a/30646837/383414). –

0

Использование библиотеки дизайн поддержка http://android-developers.blogspot.in/2015/05/android-design-support-library.html

включить это в build.gradle

compile 'com.android.support:design:22.2.0'  
compile 'com.android.support:appcompat-v7:22.2.+' 

для просмотра ресайклера включают это также

compile 'com.android.support:recyclerview-v7:22.2.0' 

<!-- AppBarLayout allows your Toolbar and other views (such as tabs provided by TabLayout) 
    to react to scroll events in a sibling view marked with a ScrollingViewBehavior.--> 
    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fitsSystemWindows="true"> 

     <!-- specify tag app:layout_scrollFlags --> 
     <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"/> 

     <!-- specify tag app:layout_scrollFlags --> 
     <android.support.design.widget.TabLayout 
      android:id="@+id/tabLayout" 
      android:scrollbars="horizontal" 
      android:layout_below="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="?attr/colorPrimary" 
      app:layout_scrollFlags="scroll|enterAlways"/> 

     <!-- app:layout_collapseMode="pin" will help to pin this view at top when scroll --> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="50dp" 
      android:text="Title" 
      android:gravity="center" 
      app:layout_collapseMode="pin" /> 

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

    <!-- This will be your scrolling view. 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" tag connects this features --> 
    <android.support.v7.widget.RecyclerView 
     android:id="@+id/list" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

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

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

Ваша деятельность должна распространяться AppCompatActivity

public class YourActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.your_layout); 

     //set toolbar 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
    } 

} 

Ваше приложение тема должна быть, как это

<resources> 
      <!-- Base application theme. --> 
      <style name="AppTheme" parent="Theme.AppCompat.NoActionBar"> 
      </style> 
    </resources> 
Смежные вопросы