0
viewmodelをボトムシートにバインドする方法を理解しようとしています。これは、ボトムシートをビューモデルの観測可能なフィールドを使用して展開、折りたたみ、非表示にする方法です。viewmodelをボトムシートにバインドする方法
ありがとうございました!
viewmodelをボトムシートにバインドする方法を理解しようとしています。これは、ボトムシートをビューモデルの観測可能なフィールドを使用して展開、折りたたみ、非表示にする方法です。viewmodelをボトムシートにバインドする方法
ありがとうございました!
カスタムBindingAdapter
を使用してください。あなたのビューにXMLでそれをバインド
@BindingAdapter("bottomSheetBehaviorState")
public static void setState(View v, int bottomSheetBehaviorState) {
BottomSheetBehavior<View> viewBottomSheetBehavior = BottomSheetBehavior.from(v);
viewBottomSheetBehavior.setState(bottomSheetBehaviorState);
}
:
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
(...)
<android.support.v4.widget.NestedScrollView
android:id="@+id/group_bottom_sheet"
bottomSheetBehaviorState="@{viewModel.bottomSheetBehaviorState}"
android:layout_width="match_parent"
android:layout_height="250dp"
android:background="@android:color/holo_blue_bright"
app:behavior_hideable="true"
app:behavior_peekHeight="50dp"
app:layout_behavior="android.support.design.widget.BottomSheetBehavior"/>
(...)
</layout>
とのViewModelに状態を変更します。私のViewModelの関連コード:
public final ObservableInt bottomSheetBehaviorState = new ObservableInt(BottomSheetBehavior.STATE_HIDDEN);
@Override
public void onAction(boolean show){
bottomSheetBehaviorState.set(show? BottomSheetBehavior.STATE_COLLAPSED : BottomSheetBehavior.STATE_HIDDEN);
}
ありがとうございます。私はこれを試してみて、私が見つけたものと一緒にバック/アップデートを報告します。 peekheightも更新しようとしています。 bottombodyheetbehaviorstateの名前空間は何ですか? – dazza5000
https://developer.android.com/reference/android/support/design/widget/BottomSheetBehavior.html#STATE_COLLAPSED – Kriczer
app/android/app:behavior_hideable android:idなどの名前空間nestedscrollview要素で定義されたbottomSheetBehaviorState属性に名前空間がありません。 – dazza5000