2016-12-27 126 views
3

我想把SwipeRefreshLayout以外CoordinatorLayout包含CollapsingToolbarLayout。当我滚动到顶部时,CollapsingToolbarLayout工作正常(折叠视图内)。但我向下滚动,它不展开视图,它显示图标刷新刷新。 我怎么向下滚动,它展开视图,然后显示图标刷新。与swiperefreshlayout与collapsingtoolbarlayout堆栈

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/srl" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 

    <android.support.design.widget.CoordinatorLayout 
     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:fitsSystemWindows="true" 
      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="250dp" 
       android:background="@color/white" 
       android:fitsSystemWindows="true" 
       app:contentScrim="@color/white" 
       app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

       <include 
        layout="@layout/layout_merchant_headerinfo" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        app:layout_collapseMode="parallax" /> 

       <android.support.v7.widget.Toolbar 
        android:id="@+id/toolbar" 
        android:layout_width="match_parent" 
        android:layout_height="?attr/actionBarSize" 
        android:background="@drawable/background_toolbar_translucent" 
        app:elevation="0dp" 
        app:layout_collapseMode="pin" 
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
        app:theme="@style/ToolbarTheme" /> 

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

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

     <android.support.v4.widget.NestedScrollView 
      android:id="@+id/scroll" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@color/white" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

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


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


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

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

回答

3

您可以AppBarLayout

public abstract class AppBarStateChangeListener implements AppBarLayout.OnOffsetChangedListener { 

    public enum State { 
     EXPANDED, 
     COLLAPSED, 
     IDLE 
    } 

    private State mCurrentState = State.IDLE; 

    @Override 
    public final void onOffsetChanged(AppBarLayout appBarLayout, int i) { 
     if (i == 0) { 
      if (mCurrentState != State.EXPANDED) { 
       onStateChanged(appBarLayout, State.EXPANDED); 
      } 
      mCurrentState = State.EXPANDED; 
     } else if (Math.abs(i) >= appBarLayout.getTotalScrollRange()) { 
      if (mCurrentState != State.COLLAPSED) { 
       onStateChanged(appBarLayout, State.COLLAPSED); 
      } 
      mCurrentState = State.COLLAPSED; 
     } else { 
      if (mCurrentState != State.IDLE) { 
       onStateChanged(appBarLayout, State.IDLE); 
      } 
      mCurrentState = State.IDLE; 
     } 
    } 

    public abstract void onStateChanged(AppBarLayout appBarLayout, State state); 
} 
+0

哇处理监听器。非常感谢! –