同じXMLの値に応じてビューを表示/非表示できますか?Androidビュー変数を使用してビューを表示/非表示することは可能ですか
私は多くの条件をJavaファイルに書きたくありません。
私が言っていることは、場合はwe can do this
これも正しく行う必要がありますか?
android:visibility="@{idOfMySwitch.isSelected() ? View.VISIBLE : View.GONE}"/>
どうすればいいですか?
同じXMLの値に応じてビューを表示/非表示できますか?Androidビュー変数を使用してビューを表示/非表示することは可能ですか
私は多くの条件をJavaファイルに書きたくありません。
私が言っていることは、場合はwe can do this
これも正しく行う必要がありますか?
android:visibility="@{idOfMySwitch.isSelected() ? View.VISIBLE : View.GONE}"/>
どうすればいいですか?
これはできません。 idOfMySwitch.isSelected()
は、データバインディング自体では観測できません。
このような場合、私はホルダーを持ち、スイッチへの双方向バインディングと可視性への1つの方法として割り当てます。
選択すると、問題が発生する可能性があります。 2-wayバインディングは、容易ではありません。しかしスイッチを使用すると、チェックされた状態をとにかく使いたいかもしれません。
<Switch ...
android:checked="@={holder.myState}" />
<TextView ...
android:visibility="@{holder.myState ? View.VISIBLE : View.GONE}" />
要素を表示するかどうかを判断するには、ビューモデルの状態を確認する必要があります。あなたのViewModelで
:
@Bindable
public boolean isAdult() {
return isAdult;
}
あなたのアクティビティでは、順番に、あなたのTextViewの可視性を更新するに応じてのViewModelにisAdultを更新スイッチ、上のクリックリスナーである必要があります。
同様の例がhereです。