10

CollapsingToolbarLayoutリストビューをスクロールするとツールバーが折りたたまれますが、ツールバーが折りたたまれていないときに機能しません。

このチュートリアルを使用: http://android-developers.blogspot.in/2015_05_01_archive.html

注: FrameLayout にはリストビューが含まれています

    <LinearLayout 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="wrap_content"
        android:orientation="vertical"
        android:scrollbars="vertical">

        <android.support.design.widget.AppBarLayout
            android:id="@+id/appbar"
            android:layout_width="match_parent"
            android:layout_height="192dp"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

            <android.support.design.widget.CollapsingToolbarLayout
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layout_scrollFlags="scroll|exitUntilCollapsed">

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

        <FrameLayout
            android:id="@+id/frame"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>

フレームレイアウト コード:

<RelativeLayout 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"
    tools:context="ranjithnair02.com.supporttest.BlankFragment">

    <ListView
        android:id="@+id/rcyv"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="10dp"
        android:layout_marginRight="10dp"
        android:src="@android:drawable/ic_search_category_default"
        app:borderWidth="0dp"
        app:elevation="5dp"
        app:rippleColor="@color/wallet_highlighted_text_holo_light" />
</RelativeLayout>

ここに画像の説明を入力

4

6 に答える 6

6

代わりに RecyclerView を使用して例を示しました。ソースコードは次の場所にあります: https://github.com/jiahaoliuliu/MaterialDesignSample/tree/collapsingToolbars

考慮すべきことがいくつかありますが、投稿には記載されていません。

  1. CoordinatorLayout をメイン レイアウトとして使用する

  2. ActionBar のないテーマを使用し、代わりにツールバーを actionBar として設定します。次のようなアクティビティの特別なテーマを作成することでそれを行うことができます。

    <!-- Indigo without actionbar when toolbar is used -->
    <style name="IndigoWithoutActionBar" parent="Indigo">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>
    

    AndroidManifest.xml ファイルで、次の操作を行います。

    <activity
        android:name=".CollapsingToolbarActivity"
        android:label="@string/app_name"
        android:theme="@style/IndigoWithoutActionBar"
        >
    </activity>
    

    これが完了したら、Java コードに設定します。

    // Actionbar
    final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    

これは、私が使用する機能的な xml コードです。

<?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"
    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:scaleType="centerCrop"
                android:fitsSystemWindows="true"
                app:layout_collapseMode="parallax" />

            <android.support.v7.widget.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.v7.widget.RecyclerView
        android:id="@+id/simpleRecyclerView"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        />

</android.support.design.widget.CoordinatorLayout>

これで十分でない場合は、 https ://github.com/chrisbanes/cheesesquare で Chris Banes のコードに従うことができます。

于 2015-06-06T18:06:56.013 に答える
1
<FrameLayout
        android:id="@+id/frame"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
于 2015-06-01T06:40:03.733 に答える
1

問題は、RelativeLayout. FrameLayoutを にListView、次に に置き換えてみてくださいFloatingButtonCoordinatorLayoutコースにすべて包まれています。

于 2015-05-31T18:22:38.683 に答える