webentwicklung-frage-antwort-db.com.de

(Design Support Library) CollapsingToolbarLayout - Die Symbolleiste wird beim Reduzieren nicht fixiert

Ich habe Probleme, die Design Support Library in meine Anwendung zu integrieren. Aus irgendeinem Grund wird die Symbolleiste mit dem CollapsingToolbarLayout ausgeblendet und bleibt nicht wie im Cheesesquare-Beispiel von Chris Banes fixiert. https://github.com/chrisbanes/cheesesquare

Ich habe nichts anderes an meinem Layout gemacht. Tatsächlich habe ich meine Stile durch seine ersetzt und sein Layout geändert. Ich frage mich, ob die Verwendung von Toolbar anstelle von Android.support.v7.widget.Toolbar dies verursacht.

Hier liegt das Problem.

The Problem

Hier ist mein XML des AppBar-Abschnitts.

<Android.support.design.widget.CoordinatorLayout
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:app="http://schemas.Android.com/apk/res-auto"
    Android:id="@+id/main_content"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:fitsSystemWindows="true">


    <Android.support.design.widget.AppBarLayout
        Android:id="@+id/appbar"
        Android:layout_width="match_parent"
        Android:layout_height="@dimen/detail_backdrop_height"
        Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        Android:fitsSystemWindows="true">

        <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:expandedTitleMarginStart="48dp"
            app:expandedTitleMarginEnd="64dp">

            <ImageView
                Android:id="@+id/backdrop"
                Android:layout_width="match_parent"
                Android:layout_height="match_parent"
                Android:fitsSystemWindows="true"
                app:layout_collapseMode="parallax" />

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

        </Android.support.design.widget.CollapsingToolbarLayout>

    </Android.support.design.widget.AppBarLayout>

    ...

</Android.support.design.widget.CoordinatorLayout>
23
aindurti

Ihre Intuition war richtig: CollapsingToolbarLayout ist darauf angewiesen, dass Sie die Unterstützung Toolbar verwenden - hiermit wird (unter anderem) die Mindesthöhe von CollapsingToolbarLayout festgelegt. Sie sollten die Support-Version von Toolbar verwenden, um die bestmögliche Erfahrung mit CollapsingToolbarLayout zu gewährleisten.

21
ianhanniballake
<?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>
14
  1. Verwenden Sie app:layout_collapseMode="pin", Um sicherzustellen, dass die Symbolleiste selbst am oberen Bildschirmrand angeheftet bleibt, während die Ansicht ausgeblendet wird.
  2. Noch besser, wenn Sie CollapsingToolbarLayout und Toolbar zusammen verwenden, wird der Titel automatisch größer, wenn das Layout vollständig sichtbar ist, und wechselt dann zu seiner Standardgröße, wenn es reduziert wird.
  3. Beachten Sie, dass Sie in diesen Fällen setTitle() auf der CollapsingToolbarLayout aufrufen sollten und nicht in der Symbolleiste.

    Weitere Informationen zur Implementierung finden Sie unter Android Developers
    Blog
    oder Details zum Paket CollapsingToolbarLayout

3
Keyur Lakhani