アプリでAndroidSlidingUpPanelライブラリを使用しています。23.1.1 以降のバージョンの Android Design Support Library では、レイアウトの一部が壊れます。最新バージョンではBottomSheetBehaviorが導入されているため、AndroidSlidingUpPanel ライブラリを置き換えて、代わりに BottomSheetBehavior を使用することを検討しています。ただし、BottomSheetBehavior には、非表示、折りたたみ、および展開の 3 つの状態しかありません (および、2 つの中間状態のドラッグと解決)。AndroidSlidingUpPanel にはさらに、アンカー状態があります。これは、パネルが折りたたまれた状態と展開された状態の間でスナップする状態です。BottomSheetBehavior を使用して、この追加のアンカー状態を取得するにはどうすればよいですか?
たとえば、Google の Maps アプリにはこの動作があります。
隠れた:
折りたたまれました:
ドラッグ (折りたたみと固定の間):
固定:
ドラッグ (アンカーと展開の間):
拡張:
場所にそれらがある場合、固定された状態でマップ上をスライドするオプションの画像で進行中のいくつかの視差効果があります。そしてフル展開になるとロケーション名がアクションバーのタイトルになります。最終的には、同様のことを達成することにも興味があります。
私の最初の本能は、アンカーされた状態は実際には展開された状態であり、マップがまだ表示されているパネルの上の空のスペースがビューの透明な部分であるということです。次に、アンカー状態と展開状態の間のドラッグは、パネル ビュー自体のコンテンツをスクロールするだけです。
これは、固定状態にある間、パネルの上の表示されているマップ領域をスワイプすることで、パネルを上にスクロールし続けることができるという事実によって検証されます。ただし、折りたたまれた状態でマップからパネルを上にスライドさせることはできないため、ビューのこの非表示部分は、折りたたまれた状態から上にスワイプするときに (オプションの画像が目に見えるように) その領域に拡張する必要があります。私はこのルートに行くことができると思いますが、他にもっと良いアプローチがあるかどうかを見たいと思っていました.