2017-03-24 8 views
1

私は、ViewPagerで複数のページにまたがっているAndroidアプリにフォームを持っています。データバインディングのあるViewPagerでAndroidのチェックボックスが正しくチェックされていない

簡潔にするために、断片化をインスタンス化する代わりに、View-objectsを返します。

各ビューはレイアウトとビューモデル(すべてのビューに使用する同じインスタンス)とデータバインディングで構成され、値を自動的に設定します。

問題は、アクティビティの読み込み時に正面にないビューにチェックボックスが入っていて白いチェックマークが付いていることです。

注文を変更すると、チェックボックス付きのビューがViewPagerで最初に読み込まれるため、(アニメーション付きで)チェックボックスが表示され、正しくマークされていることがわかります。

は、添付のスクリーンショットを参照してください:

View not being the first loaded

View 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のデータバインディング自体に問題があるかどうかはわかります。

+0

チェックボックスだけでなく、ラジオボタンも同様です – ndori

答えて

0

チェックボックスがアニメーション化されている方法と関係があると思います。だから、私はアニメーションをスキップする方法を見て、をのチェックの後にチェックすると、それは私のためのトリックです。

関連する問題