android - CollapsingToolbar - 如何禁用标题动画?
问题描述
我试图在折叠工具栏展开或折叠时显示标题。然而,在任何这些状态中,标题总是有一个移动的动画:
如何完全摆脱动画并使标题保持在一个位置?
我尝试将 titleEnabled 设置为 false 但这只会禁用标题并且不再显示它
https://stackoverflow.com/a/35975029/11110509
<android.support.design.widget.CollapsingToolbarLayout
app:titleEnabled="false"
...
>
编辑 1:我的完整布局: ___________________________________________________________________________
<?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"(或没有此属性)
应用程序:titleEnabled =“假”
如您所见,这是您想要实现的行为。下面我添加了一个布局的骨架,它应该可以正常工作。
<?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
属性等。我希望你能解决这个问题。
推荐阅读
- exception - MFC 项目的异常记录?(遇到不恰当的论点)
- python - 文件中列表的第一个和最后一个元素的字典
- python - ModuleNotFoundError:没有名为“fenics”的模块
- graphql - 使用 type-graphql 和 RESTDataSource 为第二个 api 调用添加字段解析器
- php - Laravel spatie/laravel-activitylog - 调用模型 [Spatie\Activitylog\Models\Activity] 上的未定义关系 [用户]
- c# - 在同一个项目中同时使用 AddDbContextFactory() 和 AddDbContext() 扩展方法
- javascript - 如何处理动态挂载的组件的事件?
- java - 为什么 JEditorPane 提供蓝色?
- php - 如何使用 PHP 在 postgres 字段中保存“完整”的 JSON 响应
- android - 华为 AppGallery:链接到商品详情中的应用