私は、ViewPagerで複数のページにまたがっているAndroidアプリにフォームを持っています。データバインディングのあるViewPagerでAndroidのチェックボックスが正しくチェックされていない
簡潔にするために、断片化をインスタンス化する代わりに、View-objectsを返します。
各ビューはレイアウトとビューモデル(すべてのビューに使用する同じインスタンス)とデータバインディングで構成され、値を自動的に設定します。
問題は、アクティビティの読み込み時に正面にないビューにチェックボックスが入っていて白いチェックマークが付いていることです。
注文を変更すると、チェックボックス付きのビューがViewPagerで最初に読み込まれるため、(アニメーション付きで)チェックボックスが表示され、正しくマークされていることがわかります。
は、添付のスクリーンショットを参照してください:
View not being the first loaded
私はラジオボタンと同じ問題を抱えています。
チェックボックスのデータバインディングの例:
<CheckBox
android:id="@+id/checkbox_calling"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_weight="1"
android:checked="@={viewModel.observation.calling}"
android:text="@string/label_calling" />
UPDATE:
私は現在、チェックボックスでページにViewPager
とするときViewPager
巻物にOnPageChangeListener
を設定することで、問題を解決しましたチェックボックスをオフにして、元の値に設定します。
アニメーションが正しく表示され、チェックボックスが正しいチェックマークで終了します。
私は間違ったやり方を見つけても、Androidのデータバインディング自体に問題があるかどうかはわかります。
チェックボックスだけでなく、ラジオボタンも同様です – ndori