列挙型を使用してデータバインディング式を作成し、ビュー要素の可視性を制御することは可能ですか?私が達成したいのは以下です
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical"
Android:visibility="@{user.editType == EditType.EDIT_PROFIL ? View.VISIBLE : View.GONE}">
EditTypeクラスは非常にシンプルです
public enum EditType {
NONE,
EDIT_PROFIL,
EDIT_ADDRESSES; }
XML内でこの列挙型を使用してLinearLayout
の可視性を制御できればすばらしいと思います。
誰かがこれを達成する方法を知っていますか?
私にはあなたが達成したいことは可能であるように思えます、そしておそらくタグの欠如を除いて私は何も悪いことを見ていませんか?見えない...
<data>
<import type="com.example.my.app.EditType"/>
</data>
ロジックをUIから分離することをお勧めします。可視性のすべてのロジックはJava異なるイベントのコードで実行する必要があります。@ Demo_Mailのようなものは、Activity/FragmentのOnCreate()メソッドに実装されていれば機能するが、データバインディングタグは、実行中の任意の時点でこれを動的に実行することを示唆しています(Imが間違っている場合は修正してください)。その場合、実行されるOnClick()またはOnSelectItem()メソッドを作成することをお勧めしますユーザーが列挙型の値を選択したとき(comboBoxなど)このメソッドは、ビューの可視性を設定します。