問題タブ [android-binding-adapter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
101 参照

android - BindingAdapter で明示的に findDrawableByLayerId と getDrawable を呼び出さないようにする方法

ユース ケースには、それに応じて viewHolder アイテムの Drawable 色を変更する DatabindingAdapter があります。

および XML 部分で:

これは問題なく動作しますが、明示的にfindDrawableByLayerIdを呼び出さず、R.drawable.background_corner_rightも呼び出さないことで、さらに最適化したいと考えています。

とにかく、それらを Xml で BindingAdapter にパラメーターとして渡すことができますか? これにより、BindingAdapter がより一般的で再利用可能になります。

0 投票する
1 に答える
485 参照

android - ビューの監視可能なインスタンス フィールドを使用した双方向データ バインディング?

Android の双方向データバインディングを使用する場合、 static BindingAdapters を使用する必要がありますか、Viewまたは監視可能なインスタンスフィールドを単に使用することは何とか可能ですか? ドキュメントでは、監視可能なフィールドは常にViewModelではなく でのみ表示されViewます。View監視可能なフィールドをwithに実装してみました

しかし、これをコンパイルすると(./gradlew assembleDebug --stacktrace詳細を取得するために)、失敗します

Viewでは、双方向データバインディングの側で観察可能なフィールドを使用することは可能ViewModelでしょうか? BindingAdapterstaticの代わりに観察可能なフィールドを使用したい理由は、私Viewが で処理できるよりも複雑なロジック/状態があるためですBindingAdapter(まあ、 static からBindingAdapterを呼び出すことができますmyViewInstance.myValueが、どういうわけかそれは私には間違っているように感じます)

アップデート

Githubで利用可能な最小限の (実際には動作しない) サンプルを作成しまし た。変化

inactivity_main.xmlは、あまり有益ではないコンパイル エラーにつながります。./gradlew assembleDebug --stacktrace以下を含む長い出力を取得するために使用します

誰でもこれを見て、私が間違っていることを教えてもらえますか?

0 投票する
1 に答える
303 参照

java - Databinding、MaterialCardView は Radiogroup のように動作する必要があります

Radiogroup のように機能する 2 つの MaterialCardViews を実装しようとしています。したがって、一方をクリックすると、もう一方のチェックを外す必要があります。私はviewModel、liveData、およびカスタムの双方向データバインディングを使用して、これらの値を後の目的のために保存しています(電子メールごとに送信)。

.xml の作成とチェック ロジックの実装には成功しましたが、チェック解除ロジックの実装に苦労しています。

XML、見やすくするための短いバージョン

ビューモデル

CardViewAdapter.kt

私はすべての助けに感謝します、どうもありがとうございました!

PS: ビューから viewModel に isChecked を保存するように指示するなど、これを達成するためのより良い簡単な方法がある場合は、お知らせください。MaterialCardView はデフォルトで「isChecked」を実装していますが、ロジックは実装していません。