我已经创建了一个自定义视图,它用一些文本字段包装xml-layout。当我为这个视图定义默认样式并深入研究android的内部样式时,我注意到有一个像android:Widget这样的元素。我有一个问题--我应该将它用作我的自定义小部件的父部件吗?
为了以防万一,下面是我的视图的XML布局及其默认样式:
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:orientation="vertical"
tools:parentTag="androidx.appcompat.widget.LinearLayoutCompat">
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<ImageView
android:layout_width="88dp"
android:layout_height="88dp"
android:layout_gravity="center"
android:src="@drawable/dashed_circle" />
<TextView
android:id="@+id/value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
tools:text="12" />
<TextView
android:id="@+id/default_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
tools:text="6" />
</FrameLayout>
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="-3dp"
tools:text="Защита" />
</merge><style name="Widget.ParamView" parent=""> <!-- parent="android:Widget" ??? -->
<item name="valueTextAppearance">@style/TextAppearance.AppCompat</item>
<item name="defaultValueTextAppearance">@style/TextAppearance.AppCompat</item>
<item name="labelTextAppearance">@style/TextAppearance.AppCompat</item>
</style>发布于 2020-08-14 15:14:36
首先,不需要显式声明父关系:名为foo.bar的样式自动继承自foo,因此如果您不做其他任何事情,Widget.ParamView将自动继承Widget。
至于这是否是一件好事:它在实际实现中所做的一切都是set the textAppearance attr to the current style's textAppearance (老实说,我不太确定这是什么意思)。
基本上,它不会造成太大的伤害,也不会有太多帮助。并不是很多。这很大程度上取决于你。
https://stackoverflow.com/questions/63407074
复制相似问题