CollapsingToolbar - 如何禁用标题动画?
CollapsingToolbar - How do I disable the title animation?
我试图在展开或折叠折叠工具栏时显示标题。然而,在任何这些状态下,标题总是有一个移动动画:
如何完全去掉动画,让标题停留在一个位置?
我试过将 titleEnabled 设置为 false,但这只会禁用标题而不再显示它
<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 的标题动画。
我相信您的布局可能有误。我检查了这个行为,当你添加 app:titleEnabled="false"
时,标题应该保持在同一个地方,没有任何动画。
app:titleEnabled="true"(或没有此属性)
app: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
属性等。我希望你能解决这个问题。
我试图在展开或折叠折叠工具栏时显示标题。然而,在任何这些状态下,标题总是有一个移动动画:
如何完全去掉动画,让标题停留在一个位置?
我试过将 titleEnabled 设置为 false,但这只会禁用标题而不再显示它
<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 的标题动画。
我相信您的布局可能有误。我检查了这个行为,当你添加 app:titleEnabled="false"
时,标题应该保持在同一个地方,没有任何动画。
app:titleEnabled="true"(或没有此属性)
app: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
属性等。我希望你能解决这个问题。