【发布时间】:2016-06-19 16:34:28
【问题描述】:
在我的应用程序中,我有一个折叠工具栏。如果我启动一个特定的片段,我想折叠工具栏,使其表现得像一个“正常”的片段,并且用户不能自己消耗它。这是我用于工具栏的布局:
<android.support.design.widget.AppBarLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:titleEnabled="false"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:src="@drawable/drawer_background"
app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed"
android:layout_width="match_parent"
android:layout_height="172dp"
android:scaleType="centerCrop"
app:layout_collapseMode="parallax"
android:minHeight="100dp" />
<android.support.v7.widget.Toolbar
android:id="@+id/toolBar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:layout_scrollFlags="scroll|enterAlways" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
我也可以像这样从代码中折叠布局:
appBarLayout.setExpanded(false, false);
final AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) collapsingToolbarLayout.getLayoutParams();
params.setScrollFlags(0);
collapsingToolbarLayout.setLayoutParams(params);
但这无济于事。如果用户从工具栏向下滑动,它将展开。
你有什么想法吗?
【问题讨论】:
-
如何以编程方式设置
AppBarLayout高度,使其与工具栏的高度相匹配?那样它就无处可扩展了。 -
布局中的 ImageView 和 Toolbar 中的滚动标志似乎很乱。尝试将它们也删除。
-
@IlyaPolenov 我将两者都更改为
scroll|enterAlways,但这并没有改变任何东西。你还有别的意思吗? -
试试 collapsingToolbarLayout.requestLayout();应用这些标志后的方法可能会有所帮助..
标签: android android-toolbar android-appbarlayout