web-dev-qa-db-ja.com

CollapsingToolbarLayoutのスクロールを停止して、完全に折りたたまれないようにします

CollapsingToolbarLayoutのセットアップがあり、そこに壁紙を配置しています。完全に崩壊しないようにしたいです。

私はミンハイトや他の多くのものを試しましたが、それを理解することができません。

2番目のスクリーンショットに折りたたむのをやめるにはどうすればよいですか?

アクティビティが読み込まれたときに表示

Loaded View

希望の停止点

Desired Stopping point

現在の停止ポイント

Current Stopping Point

19
Bignadad

CollapsingToolbarLayoutToolbarと非常に密接に連携しているため、折りたたみ時の高さはツールバーによって異なります。

このレイアウトを使用して問題を解決することができました(それは通常のCoordinatorLayout/AppBarLayoutセットアップに入る、 FabとNestedScrollViewまたはRecyclerView)の場合:

<Android.support.design.widget.CollapsingToolbarLayout
    Android:id="@+id/collapsing_toolbar"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:fitsSystemWindows="true"
    app:layout_scrollFlags="scroll|exitUntilCollapsed"
    app:statusBarScrim="?attr/colorPrimaryDark"
    app:contentScrim="@Android:color/transparent"
    app:titleEnabled="false"
    >
    <!-- There isnt a contentSCrim attribute so the toolbar is transparent after being
         collapsed
         Disabled the title also as you wont be needing it -->

    <ImageView
        Android:id="@+id/image_v"
        Android:layout_width="match_parent"
        Android:layout_height="360dp"
        Android:layout_gravity="center"
        Android:scaleType="centerCrop"
        Android:src="@drawable/md2"
        Android:fitsSystemWindows="true"
        app:layout_collapseMode="parallax"
        tools:ignore="ContentDescription"
        />
        <!-- Normal Imageview. Nothing interesting -->

    <Android.support.v7.widget.Toolbar
        Android:id="@+id/toolbar"
        Android:layout_width="match_parent"
        Android:layout_height="168dp"
        app:layout_collapseMode="pin"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
        />
        <!-- The toolbar is styled normally. However we disable the title also in code.
        Toolbar height is the main component that determines the collapsed height -->

    <TextView
        Android:text="@string/app_name"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:layout_gravity="bottom"
        Android:background="?attr/colorPrimaryDark"
        Android:paddingLeft="72dp"
        Android:paddingRight="0dp"
        Android:paddingBottom="24dp"
        Android:paddingTop="24dp"
        Android:textColor="@Android:color/white"
        Android:textAppearance="@style/TextAppearance.AppCompat.Headline"
        />
        <!-- The title textView -->

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

関連するアクティビティは次のようになります。

    ...
    setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    // Disable toolbar title
    getSupportActionBar().setDisplayShowTitleEnabled(false);
    ...

これが相互作用のビデオです

enter image description here

13
efemoney

私は同じ問題に直面しました。

最初に、以前の回答で説明したようにツールバーの高さを設定するだけで機能します。

しかし、これは別の問題につながりました。ツールバービューはタッチイベントを食べるため、折りたたみビュー(MapView)は、ツールバーと重なっている部分のタッチイベントを受け取りません。

最後に、私の解決策は、CollapsingToolbarLayoutからToolbarを削除することです。私の場合、折りたたみを制限するためだけに使用したので問題ありません。次のように、onCreateViewで最小の折りたたみ高さを設定します。

CollapsingToolbarLayout layoutCollapsing = (CollapsingToolbarLayout) rootView.findViewById(R.id.layoutCollapsing);
layoutCollapsing.setMinimumHeight(120);
11
CI Apps

目的のストップハイトをツールバーに追加して、app:contentScrim="#00000000"(CollapsingToolbarLayoutの場合)。

  <Android.support.design.widget.CollapsingToolbarLayout
        Android:id="@+id/collapsing_toolbar"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        app:contentScrim="#00000000"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">
        <ImageView
            Android:id="@+id/ImageView"
            Android:layout_width="match_parent"
            Android:layout_height="match_parent"
            Android:src="@drawable/image"
            app:layout_collapseMode="parallax"/>

        <Android.support.v7.widget.Toolbar
            Android:layout_width="match_parent"
            Android:layout_height="100dp"
        /> <!-- set desired stop-height as height -->

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