我正在尝试创建一个包含三个元素的CollapsingToolbarLayout
,其中只有一个元素标记为pin
,其他元素标记为parallax
。
但是所有元素总是折叠
<android.support.design.widget.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"
android:fitsSystemWindows="true"
app:contentScrim="@android:color/holo_red_light"
android:background="@android:color/holo_purple"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
app:layout_collapseMode="parallax"
app:srcCompat="@drawable/bg_wave" />
<com.example.ui.StatementHeaderView
android:id="@+id/statementHeaderView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_collapseMode="parallax" />
<include layout="@layout/toolbar_statement"
app:layout_collapseMode="pin" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
toolbar_statement
是替换 Android工具栏的简单布局:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="@dimen/height_main_toolbar"
android:background="@color/toolbarStatement">
<ImageView
android:id="@+id/button_back"
android:layout_width="@dimen/height_main_toolbar"
android:layout_height="@dimen/height_main_toolbar"
android:layout_gravity="start|center_vertical"
android:padding="12dp"
app:srcCompat="@drawable/slider_left" />
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textColor="@android:color/white"
android:textSize="16sp"
android:text="@string/nav_balance_sheet" />
<ImageView
android:id="@+id/button_calendar"
android:layout_width="@dimen/height_main_toolbar"
android:layout_height="@dimen/height_main_toolbar"
android:layout_gravity="end|center_vertical"
android:padding="12dp"
app:srcCompat="@drawable/ic_calendar" />
</FrameLayout>
如果将toolbar_statement
替换为android.support.v7.widget.Toolbar
,则表示元素已正确固定。
这是否意味着只能固定Toolbar
个元素?
答案 0 :(得分:0)
在the developer guide for <include>
中,“使用<include>
标签”部分的末尾有一个注释:
您还可以通过在
android:layout_*
标记中指定它们来覆盖包含的布局根视图的所有布局参数(任何<include/>
属性)。例如:<include android:id="@+id/news_title" android:layout_width="match_parent" android:layout_height="match_parent" layout="@layout/title"/>
但是,如果要使用
<include>
标签覆盖布局属性,则必须同时覆盖android:layout_height
和android:layout_width
才能使其他布局属性生效。
您的include标签没有指定layout_height或layout_width,但是您试图覆盖layout参数(collapseMode)。我怀疑如果将这两个属性添加到include标记中,问题将会解决。