3

Я пытаюсь получить меню на панели инструментов для своего приложения.CollapsingToolBarLayout, панель инструментов и меню

В настоящее время у меня есть CollapsingToolbarLayout. Когда пользователь перемещается вверх по recyclerview, изображение острова уменьшается в размере, а затем, в конце концов, оно рушится на панели инструментов.

Это то, что он выглядит, когда он расширяется:

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

Он отлично работает, используя этот подход! Congrats! –

Смежные вопросы