23

CoordinatorLayout と CollapsingToolbarLayout を使用して、組み合わせたレイアウトを作成しようとしています。

最初の状態で、一番上のページにいて、まだスクロールしていないとき、ツールバーを次のように拡張します (はい、実行しました)。

ここに画像の説明を入力

2 番目の状態では、下にスクロールし始めると、以下に示すように画像とツールバーが非表示になります (タブのみが表示されます)。

ここに画像の説明を入力

そして、最後の状態で、リストのある時点 (ただし、リストの一番上ではない) にあると、上にスクロールし始めたいと思います。以下に示すように、whowing を開始します (リストの一番上に到達しなかった場合、画像は表示されず、ツールバーのみが表示されます)。

ここに画像の説明を入力

最初の状態は達成できましたが、他の 2 つの状態には問題があります。CollapsingToolbarLayout 内にツールバーが実装されると、CollapsingToolbarLayout コンポーネントの外でツールバーを使用してできることの柔軟性が明確ではありません。ツールバーを非表示にすることはできません。そうすると、一番上に到達したときにのみ表示されます。

とにかく、現在の XML (以下に表示) は最初の画像が実装された状態ですが、下にスクロールし始めると、ツールバーは上部に留まり、非表示になりません。注: ツールバーを「固定」したままにするように指示する必要があります。そうしないと、ツールバー内の情報が消えて、空のツールバーだけが表示されるからです (これは別の記事で説明しますが、なぜこれが起こるのかを知るのは興味深いことです)。 .

ここに私の現在のxmlがあります:

    <android.support.design.widget.CoordinatorLayout
    android:id="@+id/benefit_coordinator_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar_material_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/main.collapsing"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:contentScrim="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            >

            <include
                android:id="@+id/toolbar_search_container"
                layout="@layout/search_box"
                android:layout_height="192dp"
                android:layout_width="match_parent"
                app:layout_collapseMode="parallax"

                />

            <include
                android:id="@+id/toolbar_benefit"
                layout="@layout/toolbar_main"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:contentScrim="?attr/colorPrimary"

                />

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

        <android.support.design.widget.TabLayout
            android:id="@+id/benefit_tab_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/primaryColor"
            app:tabIndicatorColor="@color/accentColor"
            app:tabSelectedTextColor="@android:color/white"
            app:tabTextColor="@android:color/black"
            app:tabIndicatorHeight="4dp" />

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

    <android.support.v4.view.ViewPager
        android:id="@+id/benefit_pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />
    <include
        layout="@layout/floating_btn_benefits"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|right"
        android:layout_margin="16dp"
        />
</android.support.design.widget.CoordinatorLayou
4

2 に答える 2