2

ViewPagerAppBarLayoutToolbarに関連する不思議なものを扱っています。私のレイアウトでViewPagerのスクロールレイアウトの動作がツールバーで機能しない

、私は標準のマテリアルデザインのセットアップを持っている、など:私のViewPagerはこのレイアウトで4つの断片が含ま

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

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

     <android.support.v7.widget.Toolbar 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="@color/grey_900" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
      app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
      app:layout_scrollFlags="scroll|enterAlways" /> 

     <android.support.design.widget.TabLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:tabMode="fixed" 
      app:tabGravity="fill" 
      app:tabBackground="@color/grey_900" 
      app:tabIndicatorColor="@color/white_1000" 
      app:tabIndicatorHeight="4dp" /> 

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

    <android.support.v4.view.ViewPager 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <android.support.design.widget.FloatingActionButton 
     ... 
     app:layout_behavior="com.inkstinctapp.inkstinct.FabBehavior" /> 

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

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <me.zhanghai.android.materialprogressbar.MaterialProgressBar 
     android:layout_width="56dp" 
     android:layout_height="56dp" 
     android:indeterminate="true" 
     android:tint="@color/white_1000" 
     android:layout_centerInParent="true" /> 

    <android.support.v4.widget.SwipeRefreshLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <android.support.v7.widget.RecyclerView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 

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

</RelativeLayout> 

を私は得ることができませんツールバーをスクロールすると、次の組み合わせを試しました:

app:layout_behavior="@string/appbar_scrolling_view_behavior" 
app:layout_scrollFlags="scroll|enterAlways" 

appbar_scrolling_view_behavior私のビューページからは、ビューページがAppBarLayoutの下にあるので、これはOKではありません。

私は間違っていますか?どんな助けでも本当にありがとう!

+0

フラグメントレイアウトの 'RecyclerView'に' app:layout_behavior = "@文字列/ appbar_scrolling_view_behavior"を追加してみてください – Rehan

+0

どのバージョンのappcompatを使用していますか? 23.2 AppBarLayout + SwipeRefreshLayout + SwipeRefreshLayoutでいくつかのバグがありました – marco

+0

@Rehan nothing、ツールバーはまだスクロールできません。 – Matteo

答えて

0

この

<android.support.design.widget.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: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/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:layout_scrollFlags="scroll|exitUntilCollapsed" 
     > 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      /> 

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

    <android.support.design.widget.TabLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:tabBackground="@color/ezy_green" 
     app:tabGravity="fill" 
     app:tabIndicatorColor="@color/gray_background" 
     app:tabIndicatorHeight="4dp" 
     app:tabMode="fixed"/> 
</android.support.design.widget.AppBarLayout> 
</android.support.design.widget.CoordinatorLayout> 

、あなたはそれを試すことができますリサイクラービューにscrollviewの振る舞いを追加することを忘れや

0

ニーズに合わせて残りの属性を設定することがいけないようCollapsingToolbarLayout内のツールバーをwrapingてみてください。

app:layout_behavior="@string/appbar_scrolling_view_behavior" 

コード例:ここで

<android.support.design.widget.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:id="@+id/mainScreen"> 

<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" 
     app:layout_scrollFlags="scroll|enterAlways" 
     app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 
    --> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:tabMode="fixed" 
     style="@style/AppTabLayout" 
     app:tabGravity="fill"/> 
</android.support.design.widget.AppBarLayout> 

<!--<FrameLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/fragment_container">--> 

    <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"/> 

<!--</FrameLayout>--> 

1

あなたが達成したい行動の広範なレイアウトの実装です。

<CoordinatorLayout> 
<AppbarLayout/> 
<Viewpager 
. 
. 
app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 
<FloatingActionButton/> 
</CoordinatorLayout> 

下位のViewPagerに動作を追加しても機能します。 LinearLayoutこれはそのコードがscroll属性を実装する方法ですそれでは、あなたのAppbarLayoutToolBarTabLayoutとカスタムビューのカスタム実装であるとしましょうと言います。

<AppBarLayout> 
    <CollapsingToolbarLayout 
     app:layout_scrollFlags="scroll|snap" 
     /> 

    <Toolbar 
     app:layout_scrollFlags="scroll|snap" 
     /> 

    <LinearLayout 
     android:id="+id/title_container" 
     app:layout_scrollFlags="scroll|enterAlways" 
     /> 

    <TabLayout /> <!-- no flags --> 
</AppBarLayout> 

さらに、フラグとその値を試すことができます。しかし、覚えておいてください、AppbarLayoutは、超電力で垂直のLinearLayoutです。したがって、あなたの意見を適切に配置してください。 Try this blogpost for details

+1

これは正当だと思われますが、残念ながら、今度はアプリケーションの設計が変更されたので、私は後で試してみます。また、ブログへのリンクをありがとう、それは非常に便利だろう – Matteo

+1

@マッテオ最初にリリースされて以来、私はこれらのコンポーネントを実験し続けてきた。心配しないで、それは確かに動作します。 QuickReturnの動作は、ほとんどの場合、Viewpagerのレイアウトの複雑さにも依存します。ようこそ! – sud007

関連する問題