2016-11-15 12 views
1

私は、カスタムツールバーとタブ付きでないViewPagerでアクティビティを持っています。ツールバーで、ツールバーにapp:layout_scrollFlags="scroll|enterAlways" を追加したので、ツールバーがviewPagerのフラグメントを水平方向にスクロールするときにスクロール/非表示を許可するようにしました。しかし、これはツールバーを隠すときにツールバーを隠すだけで、viewPagerをスクロールするときには隠しません。だから私はツールバーがViewPagerからスクロールイベントを選んでいないので、NestedScrollViewのviewPagerをラップすると思ったのかもしれません。これは動作しますが、今はviewPagerの全長をスクロールすることができません。誰の指針?水平スクロールビューを含む非タブ付きのviewPagerでスクロールツールバーを許可する方法は?

注:私のviewPagerでフラグメントビューそれぞれがあなたの意見についての詳細の少量を与えている水平スクロール

<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/main_content" 
 
    android:layout_width="match_parent" 
 
    android:layout_height="match_parent" 
 
    android:fitsSystemWindows="true"> 
 
    
 
<android.support.design.widget.AppBarLayout 
 
     android:id="@+id/app_bar_layout" 
 
     android:layout_width="match_parent" 
 
     android:layout_height="wrap_content" 
 
     android:theme="@style/AppTheme.AppBarOverlay"> 
 

 
     <android.support.v7.widget.Toolbar 
 
      android:id="@+id/view_case_toolbar" 
 
      android:layout_width="match_parent" 
 
      android:layout_height="?attr/actionBarSize" 
 
      android:background="?attr/colorPrimary" 
 
      app:layout_scrollFlags="scroll|enterAlways" 
 
      app:popupTheme="@style/AppTheme.PopupOverlay"/> 
 
    </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"/> 
 
    
 
</android.support.design.widget.CoordinatorLayout>

答えて

0

を可能scrollViewが含まれています。しかし、私はそれを試してみましょう。

まず、すべてがCoordinatorLayoutの内部にある必要があります。パラメータはandroid:fitsSystemWindows="false"である必要があります。 AppBarLayoutandroid:fitsSystemWindows="false"である必要があります。 Toolbarには、表示して表示するにはapp:layout_scrollFlags="scroll|enterAlways"が必要です。スクロール表示にはapp:layout_behavior="@string/appbar_scrolling_view_behavior"というパラメータが必要です。

それは次のようになります。

<android.support.design.widget.CoordinatorLayout 
    android:fitsSystemWindows="false"> 

    <android.support.design.widget.AppBarLayout 
     android:fitsSystemWindows="false" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      app:layout_scrollFlags="scroll|enterAlways"/> 

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

    <android.support.v4.view.ViewPager 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

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

これは私がちょうど修正した 'android:fitsSystemWindows =" false "'を除いてほぼ同じですが、この設定ではまだツールバーが隠れていません。 (私がツールバーをスワイプし、ビューページャーをスワイプしなくても非表示にします) –

+0

"viewPagerのフラグメントを水平方向にスクロールするときにツールバーをスクロール/非表示にすることを目標にしています" - これは機能しません。私のソリューションは、ViewPagerのコンテンツを垂直方向にスクロールしながら動作します。独自のCoordinatorLayout.Behaviorを実装し、それを 'Toolbar'に割り当てる必要があります。 –

0

私は、これはあなたを助ける推測:

<?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" 
    android:id="@+id/viewApp" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

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

     <android.support.design.widget.CollapsingToolbarLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:layout_scrollFlags="scroll" 
      android:background="@drawable/sunshine22" 
      app:titleEnabled="false"> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:background="?attr/colorPrimary" 
       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="wrap_content" 
      app:tabMode="fixed" 
      app:tabGravity="fill" 
      app:tabIndicatorColor="#fff"/> 

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

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

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

属性は自明です。詳細については、R.Zagorskiの回答を参照してください。

+0

私のビューにCollapsingToolbarLayout(またはタブレイアウト)を実装していません –