我想编写包含Check框和Label的新UI类。目前,现有的UI类具有相同的元素,但它们的元素描述不同。但两个UI的数据模型将是相同的。
为每个保留单独的UI类(通过复制GridBagConstraints和其他内容)或将公共代码移动到抽象层并导出描述实现级别的UI元素?
答案 0 :(得分:0)
您可以尝试其他一些内容,这样可以避免重复使用UI代码,我将为您提供2个示例:
名为:include_example_layout.xml
的第一个布局文件<merge xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:id="@+id/textView_includeExampleLayout_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<CheckBox
android:id="@+id/checkBox_includeExampleLayout_valid"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</merge>
第二个布局文件名为:activity_main.xml
<LinearLayout>
<include layout="@layout/toolbar_search_algolia"/>
</LinearLayout>
从MainActivity文件中,您可以调用此文件include_example_layout的ID,就像它们直接在您的activity_main文件中声明一样,这样您就可以重复使用它。
我没有写一篇关于此的完整教程,因为这是一个很好的主题,但我会在其他地方留下一些例子来帮助你理解最基本的概念,有两种方法可以帮助你可以构建CustomViews,第一个是扩展View类,它会强制你从头开始创建它,但你也可以像LinearLayout一样扩展其他视图,这将有助于你开始使用CustomView的概念(不建议在在任何情况下,如果您不明智地使用它,它可能会降低您的用户界面)