【发布时间】:2016-08-29 07:43:51
【问题描述】:
我在我的主要活动中使用了 CollapsingToolBarLayout,但只希望它在某些片段中是可扩展的。为此,我一直在使用这些方法(在片段事务/分离之后)。这些成功地为工具栏设置了动画,但它仍然可以在调用 lockAppBarClosed 的片段中展开。
public void unlockAppBarOpen(boolean animate){
appBarLayout.setExpanded(true, animate);
appBarLayout.setEnabled(true);
appBarLayout.setActivated(true);
}
public void lockAppBarClosed(boolean animate){
appBarLayout.setExpanded(false, animate);
appBarLayout.setEnabled(false);
appBarLayout.setActivated(false);
}
setEnabled 和 setActivated 似乎什么也没做。
作为参考,这里是我的 app_bar_main.xml 文件:
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="@dimen/app_bar_extended"
android:fitsSystemWindows="true"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleTextAppearance="@android:color/transparent"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
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>
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="true"
android:clickable="true"
android:background="?android:attr/selectableItemBackground"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
</FrameLayout>
我尝试通过 LayoutParams() 设置 AppBarLayout 的高度,但由于某种原因,这会阻止动画播放,即使 animate 设置为 true。将滚动标志设置为 none 或 always collapsed 什么都不做,我也不是在寻找滚动 snap 效果。
理想情况下,一个片段中不应该有应用栏的动画(就像正常一样),并且在片段之间和所需片段之间移动时应该有折叠/展开动画。
如果您有任何建议,我们将不胜感激。 谢谢。
【问题讨论】:
标签: android animation android-fragments android-toolbar android-collapsingtoolbarlayout