(Design Support Library) CollapsingToolbarLayout — Toolbar not getting pinned on collapse

别等时光非礼了梦想. 提交于 2019-12-03 01:20:49

Your intuition was correct: CollapsingToolbarLayout does rely on you using the support Toolbar - it uses that to set the minimum height of the CollapsingToolbarLayout (among many other things). You should switch to using the support version of the Toolbar to ensure the best experience with CollapsingToolbarLayout.

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".UserDetail" >

    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="true"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" >

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginEnd="64dp"
            app:expandedTitleMarginStart="48dp" >

            <ImageView
                android:id="@+id/imageView_list"
                android:layout_width="match_parent"
                android:layout_height="275dp"
                app:layout_collapseMode="parallax"
                android:fitsSystemWindows="true"
                android:scaleType="fitXY"
                android:src="@drawable/default_profile" />

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin"               
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />


        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

    <android.support.v4.widget.NestedScrollView
        android:id="@+id/scroll"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:clipToPadding="false" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >



            <TableLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:layout_margin="15dp"
                android:shrinkColumns="1"
                android:stretchColumns="*" >

                <TableRow
                    android:id="@+id/tableRow1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="5dp" >
                </TableRow>

                <TableRow
                    android:id="@+id/tableRow2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp" >

                    <TextView
                        android:id="@+id/CurrentAddress"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Current Address:"
                        android:textColor="#000000"
                        android:textSize="15sp"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/txt_CurrentAddress"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:inputType="textMultiLine"
                        android:text="Current Address"
                        android:textColor="#000000"
                        android:textSize="15sp"
                        android:textStyle="normal" />
                </TableRow>

                <TableRow
                    android:id="@+id/tableRow3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp" >

                    <TextView
                        android:id="@+id/PermanentAddress"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Permanent Address:"
                        android:textColor="#000000"
                        android:textSize="15sp"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/txt_PermanentAddress"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:inputType="textMultiLine"
                        android:text="Permanent Address"
                        android:textColor="#000000"
                        android:textSize="15sp"
                        android:textStyle="normal" />
                </TableRow>

                <TableRow
                    android:id="@+id/tableRow4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp" >

                    <TextView
                        android:id="@+id/Email"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Email:"
                        android:textColor="#000000"
                        android:textSize="15sp"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/txt_Email"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Email Address"
                        android:textColor="#000000"
                        android:textSize="15sp"
                        android:textStyle="normal" />
                </TableRow>

                <TableRow
                    android:id="@+id/tableRow5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp" >

                    <TextView
                        android:id="@+id/PhoneNumber"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Phone Number:"
                        android:textColor="#000000"
                        android:textSize="15sp"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/txt_PhoneNumber"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Phone Number"
                        android:textColor="#000000"
                        android:textSize="15sp"
                        android:textStyle="normal" />
                </TableRow>

                <TableRow
                    android:id="@+id/tableRow6"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp" >

                    <TextView
                        android:id="@+id/BirthDate"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Date of Birth:"
                        android:textColor="#000000"
                        android:textSize="15sp"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/txt_BirthDate"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="BirthDate"
                        android:textColor="#000000"
                        android:textSize="15sp"
                        android:textStyle="normal" />
                </TableRow>

                <TableRow
                    android:id="@+id/tableRow7"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp" >

                    <TextView
                        android:id="@+id/Gender"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Gender:"
                        android:textColor="#000000"
                        android:textSize="15sp"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/txt_Gender"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Gender"
                        android:textColor="#000000"
                        android:textSize="15sp"
                        android:textStyle="normal" />
                </TableRow>

                <TableRow
                    android:id="@+id/tableRow8"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp" >

                    <TextView
                        android:id="@+id/Education"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Education:"
                        android:textColor="#000000"
                        android:textSize="15sp"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/txt_Education"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Education"
                        android:textColor="#000000"
                        android:textSize="15sp"
                        android:textStyle="normal" />
                </TableRow>

                <TableRow
                    android:id="@+id/tableRow9"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp" >

                    <TextView
                        android:id="@+id/Qualification"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Qualification:"
                        android:textColor="#000000"
                        android:textSize="15sp"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/txt_Qualification"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Qualification"
                        android:textColor="#000000"
                        android:textSize="15sp"
                        android:textStyle="normal" />
                </TableRow>

                <TableRow
                    android:id="@+id/tableRow10"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp" >

                    <TextView
                        android:id="@+id/BloodGroup"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="BloodGroup:"
                        android:textColor="#000000"
                        android:textSize="15sp"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/txt_BloodGroup"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="BloodGroup"
                        android:textColor="#000000"
                        android:textSize="15sp"
                        android:textStyle="normal" />
                </TableRow>

                <TableRow
                    android:id="@+id/tableRow11"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp" >

                    <TextView
                        android:id="@+id/MaritalStatus"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="MaritalStatus:"
                        android:textColor="#000000"
                        android:textSize="15sp"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/txt_MaritalStatus"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="MaritalStatus"
                        android:textColor="#000000"
                        android:textSize="15sp"
                        android:textStyle="normal" />
                </TableRow>
            </TableLayout>

          <!--   <Button
                android:id="@+id/addContact"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Add To Contact"
                android:textStyle="bold"
                android:visibility="invisible" /> -->
        </LinearLayout>
    </android.support.v4.widget.NestedScrollView>

   <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_margin="16dp"
        app:layout_anchor="@id/app_bar_layout"
        app:layout_anchorGravity="bottom|right|end"
        android:clickable="true"
        android:src="@drawable/addtocontact"
        style="@style/FabStyle"
        />

</android.support.design.widget.CoordinatorLayout>
  1. Use app:layout_collapseMode="pin" to ensure that the Toolbar itself remains pinned to the top of the screen while the view collapses.
  2. Even better, when you use CollapsingToolbarLayout and Toolbar together, the title will automatically appear larger when the layout is fully visible, then transition to its default size as it is collapsed.
  3. Note that in those cases, you should call setTitle() on the CollapsingToolbarLayout, rather than on the Toolbar itself.

    For more details about implementation visit Android Developers
    Blog
    or details about package CollapsingToolbarLayout

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!