CollapsingToolbar - Как отключить анимацию заголовка?

Я пытаюсь отобразить заголовок, когда сворачивающаяся панель инструментов развернута или свернута. Однако в любом из этих состояний заголовок всегда имеет анимацию смещения:

введите здесь описание изображения

Как полностью избавиться от анимации и заставить заголовок оставаться на одном месте?

Я пытался установить для titleEnabled значение false, но это только отключает заголовок и больше не показывает его.

https://stackoverflow.com/a/35975029/11110509

<android.support.design.widget.CollapsingToolbarLayout
        app:titleEnabled="false"
        ...
>

Edit1: Мой полный макет: _____________________________________________________________________________

    <?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/coordinatorLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

   <com.google.android.material.appbar.AppBarLayout
       android:id="@+id/appbar_layout"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:background="@color/colorWhite">

      <com.google.android.material.appbar.CollapsingToolbarLayout
          android:id="@+id/collapsing_toolbar"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          app:contentScrim="@color/standardBlue"
          app:title="Title"
          app:layout_scrollFlags="scroll|exitUntilCollapsed">

         <RelativeLayout
             android:id="@+id/activityprofile_topsection"
             android:layout_width="match_parent"
             android:layout_height="wrap_content">

            <ImageView
                android:id="@+id/activityprofile_coverpicture"
                android:layout_width="match_parent"
                android:layout_height="120dp"
                android:background="@color/standardBlue" />


            <ImageView
                android:id="@+id/activityprofile_profilepicture"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginLeft="20dp"
                android:layout_marginTop="70dp"
                android:background="@drawable/profile_picture_white_border" />

            <TextView
                android:id="@+id/activityprofile_username"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/activityprofile_profilepicture"
                android:layout_marginStart="15dp"
                android:layout_marginTop="5dp"
                android:text="Username"
                android:textColor="@color/colorBlackFont"
                android:textSize="16sp" />

         </RelativeLayout>

         <androidx.appcompat.widget.Toolbar
             android:layout_width="match_parent"
             android:layout_height="?attr/actionBarSize"
             app:contentInsetStart="0dp"
             app:layout_collapseMode="pin">

            <ImageView
                android:id="@+id/activityprofile_backbutton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="?attr/actionBarItemBackground"
                android:padding="15dp"
                app:srcCompat="@drawable/icon_back_white_arrow" />
         </androidx.appcompat.widget.Toolbar>

      </com.google.android.material.appbar.CollapsingToolbarLayout>

      <com.google.android.material.tabs.TabLayout
          android:layout_width="match_parent"
          android:layout_height="wrap_content">

         <com.google.android.material.tabs.TabItem
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:icon="@drawable/icon_back_black_arrow" />

         <com.google.android.material.tabs.TabItem
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:icon="@drawable/ic_heart" />
      </com.google.android.material.tabs.TabLayout>

   </com.google.android.material.appbar.AppBarLayout>


   <androidx.recyclerview.widget.RecyclerView
       android:id="@+id/recycler_view"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       app:layout_behavior="@string/appbar_scrolling_view_behavior" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

Как только я добавляю app:titleEnabled="false" заголовок исчезает

По-прежнему не удается отключить анимацию заголовка CollapsingToolbar.


person DIRTY DAVE    schedule 04.01.2020    source источник
comment
Пробовали ли вы поиграться с API и посмотреть, поможет ли он вам добиться того, чего вы хотите? developer.android.com/reference/android/support/design/widget/ В противном случае я бы сказал, что вам нужно будет повторно реализовать это, используя другой API или комбинацию различных частей платформы Android.   -  person denis_lor    schedule 07.01.2020
comment
Вы устанавливаете заголовок на Toolbar или на CollapsingToolbarLayout?   -  person romtsn    schedule 13.01.2020
comment
сворачивающаяся панель инструментов   -  person DIRTY DAVE    schedule 13.01.2020


Ответы (1)


Я полагаю, что вы могли сделать что-то неправильно со своими макетами. Я проверил это поведение, и когда вы добавляете app:titleEnabled="false", заголовок должен оставаться на том же месте без какой-либо анимации.

app:titleEnabled="true" (или без этого атрибута)

введите здесь описание изображения

приложение:titleEnabled="false"

введите здесь описание изображения

Как видите, это то поведение, которого вы хотите добиться. Ниже я добавил скелет макета, который должен работать корректно.

<?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:id="@+id/coordinatorLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    >

  <android.support.design.widget.AppBarLayout
      android:id="@+id/appbar_layout"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:background="@android:color/transparent"
      android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
      >

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsingToolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:elevation="@dimen/toolbar_elevation"
        app:contentScrim="@color/colorWhite"
        app:titleEnabled="false"
        app:layout_scrollFlags="scroll|exitUntilCollapsed"
        >

      <RelativeLayout
          android:id="@+id/it_could_be_any_layout"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:background="@drawable/profile_bg"
          android:scaleType="centerCrop"
          app:layout_collapseMode="parallax"
          >

       <!-- Your content here -->
       
      </RelativeLayout>

      <android.support.v7.widget.Toolbar
          android:id="@+id/toolbarProfile"
          android:layout_width="match_parent"
          android:layout_height="?attr/actionBarSize"
          app:layout_collapseMode="pin"
          app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
          />

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

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

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        >
        <!-- Your RecyclerView here or even replace this LinearLayout -->
    </LinearLayout>

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

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

Я думаю, что вам следует еще раз проверить свою реализацию и поиграть с атрибутами layout_behavior, app:layout_scrollFlags, collapseMode и так далее. Я надеюсь, что вы сможете решить эту проблему.

person mmBs    schedule 06.01.2020
comment
Свою схему я выложил выше. Каждый раз, когда я добавляю app:titleEnabled="false", заголовок полностью исчезает. Где вы устанавливаете заголовок "Profile Fragment"? - person DIRTY DAVE; 07.01.2020
comment
Во Фрагменте программно, используя toolbar.setTitle(""). - person mmBs; 07.01.2020
comment
Однако ваша сворачивающаяся панель инструментов не имеет эффекта затухания. - person DIRTY DAVE; 07.01.2020
comment
Пожалуйста, посмотрите еще раз на гифки, которые я разместил. Эффект затухания есть. Это эффект CollapsingToolbarLayout по умолчанию. - person mmBs; 07.01.2020
comment
Сдавшись, я попробовал еще раз, и, наконец, через 2 месяца у меня получилось. Это должно быть установлено app:titleEnabled="false", а toolbar.setTitle(" ") должна быть панелью инструментов ОБЫЧНОЙ ПАНЕЛИ ИНСТРУМЕНТОВ, а не CollapsingToolbarTitle. Вот почему анимация не отключалась... - person DIRTY DAVE; 12.03.2020