我可以在 Android XML 布局中创建可重用组件吗?
Can I create a reusable component in an Android XML layout?
这是一个简单的代码效率问题,而我正在学习更多关于布局的知识。我正在创建一个复选框网格,每个复选框的大部分属性都相同。每个复选框有 8 个属性,每个复选框有 5 个相同。我可以创建一种我可以重复使用的自定义复选框 class,从而大大简化我的 XML 文件吗?
奖励积分:我可以在我的 XML 文件中创建一个 loop/array,这样我就不必为每个框单独编码了吗?我有 32 行 5 列 = 160 个单独的复选框组件。
为您要在许多地方使用的视图创建一个隔离 xml 文件。之后只需在要使用 xml.
的地方使用 <include/>
<include
android:id="@+id/toolbar"
layout="@layout/common_tool_bar_layout" // your xml name
app:layout_constraintEnd_toEndOf="parent"/>
样式 values/styles.xml
在样式
中添加通用规则
<style name="MyCheckBoxStyle">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
....
</style>
这样使用-
<CheckBox
..uncommon rules...
style="@style/MyCheckBoxStyle"/>
对于循环,您在错误的层次上进行。创建一个自定义视图,扩展任何布局 class 是最方便的(线性、框架、约束、相对等)。在其构造函数中,循环创建适当数量的子项并将它们添加到自身。然后将此 class 包含在您的 xml.
中
您可以将 RecyclerView
与 GridLayoutManager
一起用于该目的
也可以动态添加RadioButton
linearLayout.addView(radioButton);
当然,方法 1 是首选,因为它的性能很好。
这是一个简单的代码效率问题,而我正在学习更多关于布局的知识。我正在创建一个复选框网格,每个复选框的大部分属性都相同。每个复选框有 8 个属性,每个复选框有 5 个相同。我可以创建一种我可以重复使用的自定义复选框 class,从而大大简化我的 XML 文件吗?
奖励积分:我可以在我的 XML 文件中创建一个 loop/array,这样我就不必为每个框单独编码了吗?我有 32 行 5 列 = 160 个单独的复选框组件。
为您要在许多地方使用的视图创建一个隔离 xml 文件。之后只需在要使用 xml.
的地方使用<include/>
<include
android:id="@+id/toolbar"
layout="@layout/common_tool_bar_layout" // your xml name
app:layout_constraintEnd_toEndOf="parent"/>
样式 values/styles.xml 在样式
中添加通用规则<style name="MyCheckBoxStyle">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
....
</style>
这样使用-
<CheckBox
..uncommon rules...
style="@style/MyCheckBoxStyle"/>
对于循环,您在错误的层次上进行。创建一个自定义视图,扩展任何布局 class 是最方便的(线性、框架、约束、相对等)。在其构造函数中,循环创建适当数量的子项并将它们添加到自身。然后将此 class 包含在您的 xml.
中您可以将
RecyclerView
与GridLayoutManager
一起用于该目的也可以动态添加
RadioButton
linearLayout.addView(radioButton);
当然,方法 1 是首选,因为它的性能很好。