10

私の問題に関連した多くの問題に出会ったが、私が探していた振る舞いを望んでいなかった。AppBarLayout + TabLayout + CollapsingToolbarLayout + SwipeToRefresh

タブとアプリケーションバーを含むビューページャが必要です。含まれているフラグメントがスクロール可能でスクロールされている場合(下に向かって)、アプリケーションバーを消滅させますが、上にスクロールすると、 。これらのフラグメントの一部にはSwipeToRefreshレイアウトが含まれています(問題が発生することがあります)。 私はいつも何か間違っている多くの構成を試しました。

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:wheel="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.m360learning.app.fragment.MainPagerNewsFeed"> 


    <android.support.v4.widget.SwipeRefreshLayout 
     android:id="@+id/swipeRefreshLayout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <com.pnikosis.materialishprogress.ProgressWheel 
       android:id="@+id/progress_wheel" 
       android:layout_width="80dp" 
       android:layout_height="80dp" 
       android:layout_centerHorizontal="true" 
       android:layout_centerVertical="true" 
       wheel:matProg_barColor="#5588FF" 
       wheel:matProg_progressIndeterminate="true" /> 

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

     </RelativeLayout> 

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

</FrameLayout> 

Iドン:

は、今の私は(それは常に隠されています)

<?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" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fitsSystemWindows="true" 
tools:context=".MainPagerActivity"> 

<RelativeLayout 
    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: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" 
      app:contentScrim="?attr/colorPrimary" 
      app:expandedTitleMarginEnd="64dp" 
      app:expandedTitleMarginStart="48dp" 
      app:layout_scrollFlags="scroll|enterAlways"> 


      <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.TabLayout 
       android:id="@+id/tabs" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       app:tabGravity="fill" 
       app:tabIndicatorHeight="6dp" 
       app:tabMode="fixed" /> 

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


    <android.support.v4.view.ViewPager 
     android:id="@+id/main_pager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_below="@id/app_bar_layout" 
     tools:context=".MainPagerActivity" 

     /> 

</RelativeLayout> 

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="bottom|end" 
    android:layout_margin="@dimen/fab_margin" 
    android:src="@android:drawable/ic_menu_edit" /> 

と私の断片(スクロール1)のいずれかを崩壊効果を持っていません私が何をしたのか正確にはわかっていませんが、この質問を書き始めた時からrefreshLayoutはリストが上がらないようにしました(代わりにリフレッシュ)。

ありがとう

------訂正!

<?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" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context=".MainPagerActivity"> 


    <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.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" 
       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:tabGravity="fill" 
       app:tabIndicatorHeight="6dp" 
       app:tabMode="fixed" /> 

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


    <android.support.v4.view.ViewPager 
     android:id="@+id/main_pager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     tools:context=".MainPagerActivity" 
     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|end" 
     android:layout_margin="@dimen/fab_margin" 
     android:src="@android:drawable/ic_menu_edit" /> 


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

とフラグメントレイアウト:

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:wheel="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.m360learning.app.fragment.MainPagerNewsFeed"> 


    <com.pnikosis.materialishprogress.ProgressWheel 
     android:id="@+id/progress_wheel" 
     android:layout_width="80dp" 
     android:layout_height="80dp" 
     android:layout_gravity="center" 
     wheel:matProg_barColor="#5588FF" 
     wheel:matProg_progressIndeterminate="true" /> 

    <android.support.v4.widget.SwipeRefreshLayout 
     android:id="@+id/swipeRefreshLayout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 


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


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


</FrameLayout> 

答えて

11

あなたは、視差効果をしたくない場合は、あなたが必要としない、それが今、このXMLと連携サーエリーゾウに

おかげで、 CollapsingToolbarLayoutを使用します。

ほとんどの重要な構成:ツールバーで

は、app:layout_scrollFlags="scroll|enterAlways"を設定します。

ViewPagerでapp:layout_behavior="@string/appbar_scrolling_view_behavior"と設定します。

とレイアウトは次のようになります。SwipeRefreshLayoutはリフレッシュできませんあなたの問題を解決するために、あなたのSwipeRefreshLayoutのうち

<android.support.design.widget.CoordinatorLayout> 

    <android.support.design.widget.AppBarLayout> 

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

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

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

    <android.support.v4.view.ViewPager/> 

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

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

移動ProgressWheelを。

+0

素晴らしい!私は私のポストを更新する、ありがとう! –

+0

Oups申し訳ありませんが、私は気づいていませんでしたが、swipeToRefreshは壊れています。 –

+0

'SwipeRefreshLayout'から' ProgressWheel'を移動しようとしました –

関連する問題