Android折叠工具栏在折叠时没有隐藏其他元素

Abh*_*ngh 4 java android android-collapsingtoolbarlayout

我在 Android 支持设计折叠工具栏上有一个布局,其中包含 TextView 但是当我折叠我的工具栏时。一些带有工具栏标题的 TextView 显示。我想隐藏所有其他的东西,而不是工具栏和标题。这是我的布局。

<android.support.design.widget.AppBarLayout
    android:id="@+id/MyAppbar"
    android:layout_width="match_parent"
    android:layout_height="256sp"
    android:fitsSystemWindows="true">
    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapse_toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_scrollFlags="scroll|exitUntilCollapsed"
        android:background="#ff009688"
        app:contentScrim="@color/colorPrimary"
        app:expandedTitleMarginTop="100sp"
        app:expandedTitleGravity="center|bottom"
        android:fitsSystemWindows="true">
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="fitXY"
            app:srcCompat="@drawable/bgimg"
            app:layout_collapseMode="parallax"/>
        <android.support.v7.widget.Toolbar
            android:id="@+id/MyToolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin" />

        <RelativeLayout
            android:layout_width="match_parent"
            app:layout_anchor="@+id/MyAppbar"
            android:layout_height="match_parent">
            <de.hdodenhof.circleimageview.CircleImageView
                android:id="@+id/profile_image"
                android:layout_width="96dp"
                android:layout_height="96dp"
                android:src="@drawable/studentprofile"
                app:civ_border_width="2dp"
                app:civ_border_color="#0adcf4"
                android:layout_marginTop="58dp"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true" />

            <TextView
                android:id="@+id/branch"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:text="Branch:  "
                android:textColor="@color/textColorPrimary"
                android:textSize="14sp"
                android:layout_marginBottom="20sp"
                android:layout_alignParentBottom="true"
                android:layout_centerInParent="true" />
        </RelativeLayout>
    </android.support.design.widget.CollapsingToolbarLayout>

</android.support.design.widget.AppBarLayout>
Run Code Online (Sandbox Code Playgroud)

我的Java代码是...

collapsingToolbar =
            (CollapsingToolbarLayout) findViewById(R.id.collapse_toolbar);
    collapsingToolbar.setTitle(name);
    collapsingToolbar.setExpandedTitleTextAppearance(R.style.expandedappbar);
    collapsingToolbar.setCollapsedTitleTextAppearance(R.style.collapsedappbar);
    final ImageView profile=(ImageView)findViewById(R.id.profile_image);
    Picasso.with(this)
            .load(photo_url)
            .placeholder(R.drawable.studentprofile)
            .networkPolicy(NetworkPolicy.NO_CACHE)
            .into(new Target() {
                @Override
                public void onBitmapLoaded (final Bitmap bitmap, Picasso.LoadedFrom from){
                /* Save the bitmap or do something with it here */
                    Palette.from(bitmap).generate(new Palette.PaletteAsyncListener() {

                        @Override
                        public void onGenerated(Palette palette) {
                            collapsingToolbar.setContentScrimColor(palette.getMutedColor(ContextCompat.getColor(context,R.color.colorPrimary)));
                            collapsingToolbar.setStatusBarScrimColor(palette.getMutedColor(ContextCompat.getColor(context,R.color.colorPrimaryDark)));
                        }
                    });
                    //Set it in the ImageView
                    profile.setImageBitmap(bitmap);
                }

                @Override
                public void onBitmapFailed(Drawable errorDrawable) {
                }

                @Override
                public void onPrepareLoad(Drawable placeHolderDrawable) {
                }
            });
Run Code Online (Sandbox Code Playgroud)

Abh*_*ngh 9

因为我自己解决了我的问题,所以我发布了这个答案,所以它会对其他人有所帮助。 CollapsingToolBarextendsFrameLayout因此,在另一个标签之后编写的任何 xml 标签都将作为父标签的顶部分层。我RelativeLayout是在这Toolbar就是为什么Relative Layout元素ToolbarCollapsingToolbar折叠后显示之后写的。将工具栏折叠后RelativeLayoutToolbar将其放在将隐藏元素之前。

<android.support.design.widget.CollapsingToolbarLayout
    android:id="@+id/collapse_toolbar"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_scrollFlags="scroll|exitUntilCollapsed"
    android:background="#ff009688"
    app:contentScrim="@color/colorPrimary"
    app:expandedTitleMarginTop="100sp"
    app:expandedTitleGravity="center|bottom"
    android:fitsSystemWindows="true">
    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="fitXY"
        app:srcCompat="@drawable/bgimg"
        app:layout_collapseMode="parallax"/>

   <RelativeLayout
        android:layout_width="match_parent"
        app:layout_anchor="@+id/MyAppbar"
        android:layout_height="match_parent">
        <de.hdodenhof.circleimageview.CircleImageView
            android:id="@+id/profile_image"
            android:layout_width="96dp"
            android:layout_height="96dp"
            android:src="@drawable/studentprofile"
            app:civ_border_width="2dp"
            app:civ_border_color="#0adcf4"
            android:layout_marginTop="58dp"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true" />

        <TextView
            android:id="@+id/branch"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="Branch:  "
            android:textColor="@color/textColorPrimary"
            android:textSize="14sp"
            android:layout_marginBottom="20sp"
            android:layout_alignParentBottom="true"
            android:layout_centerInParent="true" />
    </RelativeLayout>
    <android.support.v7.widget.Toolbar
        android:id="@+id/MyToolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        app:layout_collapseMode="pin" />

</android.support.design.widget.CollapsingToolbarLayout> 
Run Code Online (Sandbox Code Playgroud)