如何在CollapsingToolbarLayout中为AppBarLayout设置LayoutParams CollapsingToolbarLayout工具栏和ImageView

时间:2016-03-29 12:49:44

标签: android android-toolbar android-coordinatorlayout android-collapsingtoolbarlayout android-appbarlayout

我试图为AppBarLayout和CollapsingToolbarLayout动态设置高度,但无论我做了什么都没有用。

  • AppBarLayoutHeight = 0.416 * widthOfScreen
  • CollapsingToolbarLayoutHeight = 0.416 * widthOfScreen
  • ImageViewHeight = 0.416 * widthOfScreen

工具栏高度= CollapsingToolbarLayoutHeight / 2

如何在onCreate上完成 寻找帮助的人。

XML

<android.support.design.widget.CoordinatorLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:id="@+id/cl_movie_detail"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/app_background" >

    <android.support.design.widget.AppBarLayout
    android:id="@+id/ab_movie_detail"
    android:layout_width="match_parent"
    android:layout_height="256dp" >

        <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/ctb_movie_detail"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        local:layout_scrollFlags="scroll|exitUntilCollapsed"
        local:contentScrim="@android:color/transparent" >

            <ImageView
            android:id="@+id/iv_movie_detail_landscape_poster"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            local:layout_collapseMode="parallax"
            android:background="@drawable/test_landscape"
            android:scaleType="centerCrop" />

            <include
            android:id="@+id/toolbar"
            layout="@layout/toolbar_without_logo_transparent" />

            <RelativeLayout
            android:id="@+id/rl_movie_detail_trailer_area"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            local:layout_collapseMode="parallax"
            android:background="@drawable/transparent_rectangle_radius_corner"
            android:padding="@dimen/margin8" >

                <ImageView
                android:id="@+id/iv_movie_detail_trailer_icon"
                android:layout_width="@dimen/drawer_icon_width"
                android:layout_height="@dimen/drawer_icon_width"
                android:layout_marginLeft="@dimen/margin8"
                android:layout_marginRight="@dimen/margin8"
                android:scaleType="fitXY"
                android:src="@drawable/ic_play_trailer" />

                <TextView
                android:id="@+id/tv_movie_detail_trailer_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_toRightOf="@+id/iv_movie_detail_trailer_icon"
                android:gravity="center"
                android:paddingRight="@dimen/margin8"
                android:text="@string/assetActivityAssetTrailer" />
            </RelativeLayout>
        </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"
    local:layout_behavior="@string/appbar_scrolling_view_behavior" >

        <LinearLayout
        android:id="@+id/ll_content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        childView...

        </LinearLayout>
    </android.support.v4.widget.NestedScrollView>

    <ImageView
    android:id="@+id/iv_movie_detail_portrait_poster"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="@dimen/margin16"
    local:layout_anchor="@id/ab_movie_detail"
    local:layout_anchorGravity="bottom|left|start"
    android:clickable="true"
    android:src="@drawable/test_portrait" />
</android.support.design.widget.CoordinatorLayout>

private AppBarLayout appBarLayout;
private CollapsingToolbarLayout collapsableToolbarLayout;
private ImageView landscapePoster;

    CollapsingToolbarLayout.LayoutParams lp_landscape_poster = null;
    lp_landscape_poster = new CollapsingToolbarLayout.LayoutParams(width, heightOfLandscapePoster);
    landscapePoster.setLayoutParams(lp_landscape_poster);

    CoordinatorLayout.LayoutParams lp_app_bar = null;
    lp_app_bar = new CoordinatorLayout.LayoutParams(width, heightOfLandscapePoster);
    appBarLayout.setLayoutParams(lp_app_bar);

    AppBarLayout.LayoutParams lp_collapsable_toolbar = null;
    lp_collapsable_toolbar = new AppBarLayout.LayoutParams(width, heightOfLandscapePoster);
    lp_collapsable_toolbar.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL | AppBarLayout.LayoutParams.SCROLL_FLAG_EXIT_UNTIL_COLLAPSED);
    collapsableToolbarLayout.setLayoutParams(lp_collapsable_toolbar);

0 个答案:

没有答案