Android - 是否有与 Xamarin 表单 DataTemplate 等效的 Android?

问题描述

假设我在原生 Android 项目中有一个 Radio Group,如下所示:

            <RadioGroup
                android:id="@+id/date_options"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent">

                <RadioButton
                    android:id="@+id/option0"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    tools:text="Thursday" 
                    android:text="@{viewmodel.dateOptions[0]}" />

                <RadioButton
                    android:id="@+id/option1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    tools:text="Friday"
                    android:text="@{viewmodel.dateOptions[1]}" />

                <RadioButton
                    android:id="@+id/option2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@{viewmodel.dateOptions[2]}" />

                <RadioButton
                    android:id="@+id/option3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@{viewmodel.dateOptions[3]}" />
            </RadioGroup>

每个按钮之间的唯一区别是数量。 如果我在 xamarin.forms 应用程序中进行开发,我将能够使用数据模板,只需定义一次单选按钮即可减少代码重复。有没有办法在原生 Android 中做到这一点?它看起来像这样:

                   <RadioButton
                    android:id="@+id/option@{i}"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@{viewmodel.dateOptions[i]}" />

其中 i 是通过数组的简单迭代给出的数字。我想它在某些时候也可能会使用 RecyclerView

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)