3

我試圖讓我的應用程序工具欄上的菜單。CollapsingToolBarLayout,工具欄和菜單

目前,我有一個CollapsingToolbarLayout。當用戶向上移動回收站視圖時,一個島的圖像尺寸減小,最後它會摺疊到工具欄中。

這是個什麼樣子,當它展開,如:

collapsingtoolbarlayout

這是個什麼樣子時,它已經倒塌,如:

random island

現在,你可以看到,當它被展開時,心臟圖標被複制(一次在FAB中,一次在工具欄中。當FAB不再可見時,我只想讓心臟圖標出現在工具欄中,否則我覺得它會當屏幕上有兩個完全相同的按鈕時,會讓用戶感到困惑。

當collapsingToolBarLayout完全摺疊時,如何才能在工具欄上顯示心臟圖標?我試圖尋找某種類型的onCollapse監聽器,但沒有運氣。

這是XML代碼:

<android.support.design.widget.AppBarLayout 
     android:layout_height="192dp" 
     android:id="@+id/appbar" 
     android:layout_width="match_parent"> 
<!--  android:fitsSystemWindows="true"--> 
     <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" 

      app:contentScrim="?attr/colorPrimary" 
      app:expandedTitleMarginStart="16dp" 
      app:expandedTitleMarginEnd="32dp"> 

      <ImageView 
       android:id="@+id/backdrop" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:scaleType="centerCrop" 
       android:fitsSystemWindows="true" 
       android:src="@drawable/ocean395" 
       app:layout_collapseMode="pin" /> 

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

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

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

回答

1

嘿,你可以添加監聽器這樣

AppBarLayout appBarLayout = (AppBarLayout)view.findViewById(R.id.app_bar_layout); 
appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() { 
    @Override 
    public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { 
     if (Math.abs(verticalOffset) == appBarLayout.getTotalScrollRange()) { 
      // Collapsed (make button visible and fab invisible) 
     } else if (verticalOffset == 0) { 
      // Expanded (make fab visible and toolbar button invisible) 
     } else { 
      // Somewhere in between 
     } 
    } 
});); 

How can i determine that CollapsingToolbar is collapsed?

+0

它完美地使用這種方法稱爲!恭喜! –