2016-10-24 11 views
4

@string/bottom_sheet_behaviorで定義されている動作のボトムシートを使用するアプリケーションを実装しています。また、paddingをアニメーション化するためにonSlide()メソッドを使用したいので、プログラムでBottomSheetBehavior.BottomSheetCallback()を設定しました。したがって、設定する新しいパディングを計算するには、slideOffset値が本当に必要です。 私はdocsを読んでいます。そこでは、状態が隠れた状態と折り畳まれた状態の間にあるとき、値の範囲は-1から0までです。私は携帯電話やタブレットがポートレートモードで、アンドロイドのバージョンとは独立している場合にのみ、この動作を見ることができます。しかし、風景モードでは、範囲はすべて1から-1になります。Android BottomSheetBehaviorコールバックメソッドonSlide()は、紛らわしいslideOffset値を返します

D/SLIDE: -0.86160713 
D/SLIDE: -0.5714286 
D/SLIDE: -0.29910713 
D/SLIDE: -0.0625 
D/SLIDE: 0.11382114 
D/SLIDE: 0.27235773 
D/SLIDE: 0.40650406 
D/SLIDE: 0.51626015 
D/SLIDE: 0.6300813 
D/SLIDE: 0.69512194 
D/SLIDE: 0.75609756 
D/SLIDE: 0.8130081 
D/SLIDE: 0.8577236 
D/SLIDE: 0.8943089 
D/SLIDE: 0.9186992 
D/SLIDE: 0.9430894 
D/SLIDE: 0.9593496 
D/SLIDE: 0.97154474 
D/SLIDE: 0.9796748 
D/SLIDE: 0.9878049 
D/SLIDE: 0.9918699 
D/SLIDE: 0.99593496 
D/SLIDE: 1.0 

は、私が唯一のボタンのクリックでボトムシートの新しい状態を設定します。ここでは詳細に は拡大して隠されたから行くボトムシートの値の歴史です。 希望の値は-1から始まり0.0で終わります。この歴史の中でも値は増加しますが、+1になります。
他の誰かが同じ奇妙な行動に直面しなければならなかったのですか?
追加のコードが必要な場合は、私の質問を更新します。

ありがとうございます。文書によると

  • STATE_EXPANDED
  • STATE_COLLAPSED
  • STATE_HIDDEN


ピーター

答えて

0

はBottomSheetBehaviorは "固定" 3を持っていると述べ

新しい本のオフセット内の下のシート[-1,1]の範囲。オフセットは で、このボトムシートが上に移動するにつれて増加します。 0~1のシート は折りたたまれた状態と展開された状態の間にあり、-1から0までは隠れた状態と折り畳まれた状態の間では です。

setHideableメソッドを使用して、STATE_HIDDENを除外/含めることができます。

1

私はBottomSheetBehavior.BottomSheetCallback()onSlide方法はdocumentation(-1から1までの値)に応じて動作していないが、少なくとも私がすることができたので、あなたが、私は問題が固定されていると言うことはできませんと同じ問題を抱えていましたこのように、0にピーク高さを設定することにより、それを標準化:( - 1 0)

bottomSheetBehavior.setPeekHeight(0);

この行を追加した後、私はonSlideメソッドは常に正の値を持っていたことがわかりました。

私はまだ解決策を見つけるために何が起こっているのか理解しようとしています。

関連する問題