我正在尝试将CollapsingToolbarLayout与ScrollView一起使用,但我没有让它工作。我试试这个:
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_below="@+id/toolbar"
android:scrollbars="none"
android:overScrollMode="never"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
app:behavior_overlapTop="192dp"
android:layout_height="match_parent">
<LinearLayout android:layout_width="match_parent"
android:orientation="vertical"
android:padding="@dimen/medium_padding"
android:layout_height="match_parent">
<!-- my content -->
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"></android.support.v7.widget.Toolbar>
<ImageView
android:src="@drawable/fondo_drawer"
app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
app:layout_collapseMode="parallax"
android:minHeight="100dp"/>
</android.support.design.widget.CollapsingToolbarLayout>
我使用ScrollView和NestedScrollView测试失败。
有什么想法吗?提前谢谢!
答案 0 :(得分:12)
我想
android:fitsSystemWindows="true" is the cause.
检查我的简单工作示例代码。
<android.support.design.widget.CoordinatorLayout
android:id="@+id/product_detail_main_content"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:apptools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="@dimen/product_detail_appBar_height"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/detail_product_collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:foregroundGravity="bottom|right"
android:foregroundTintMode="add"
android:clipToPadding="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginStart="@dimen/space_xxlarge"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/image"
android:fitsSystemWindows="true"
android:scaleType="centerCrop"
app:layout_collapseMode="parallax"
app:layout_collapseParallaxMultiplier="0.7"/>
<android.support.v7.widget.Toolbar
android:id="@+id/product_toolBar_title"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:fitsSystemWindows="true"
app:layout_collapseMode="pin"
app:navigationIcon="@drawable/ic_arrow_back_white_24dp"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
........
<android.support.design.widget.CoordinatorLayout
您可以查看此链接http://inthecheesefactory.com/blog/android-design-support-library-codelab/en
答案 1 :(得分:0)
我遇到了同样的错误abhishek's
答案是完美的。
我想补充一点。如果您只为AppBarLayout执行android:fitsSystemWindows="true"
它将起作用,您不必为ImageView
和ToolBar
设置它 - 因为它们是AppBarLayout
的一部分,这将是适用于他们。
看看这里 - https://medium.com/google-developers/why-would-i-want-to-fitssystemwindows-4e26d9ce1eec#.an1hvz44l
系统窗口是系统绘制的屏幕部分 非交互式(在状态栏的情况下)或交互式 (在导航栏的情况下)内容。
大多数情况下,您的应用无需在状态栏下绘图 导航栏,但如果你这样做:你需要确保交互式 元素(如按钮)不会隐藏在它们下面。那是什么的 android:fitsSystemWindows =“true”属性的默认行为 给你:它设置视图的填充以确保内容 不要覆盖系统窗口。