首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义视图:我应该将"android:Widget“设置为我的视图样式的父对象吗?

自定义视图:我应该将"android:Widget“设置为我的视图样式的父对象吗?
EN

Stack Overflow用户
提问于 2020-08-14 13:28:29
回答 1查看 144关注 0票数 0

我已经创建了一个自定义视图,它用一些文本字段包装xml-layout。当我为这个视图定义默认样式并深入研究android的内部样式时,我注意到有一个像android:Widget这样的元素。我有一个问题--我应该将它用作我的自定义小部件的父部件吗?

为了以防万一,下面是我的视图的XML布局及其默认样式:

代码语言:javascript
复制
<?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>
代码语言:javascript
复制
<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>
EN

回答 1

Stack Overflow用户

发布于 2020-08-14 15:14:36

首先,不需要显式声明父关系:名为foo.bar的样式自动继承自foo,因此如果您不做其他任何事情,Widget.ParamView将自动继承Widget

至于这是否是一件好事:它在实际实现中所做的一切都是set the textAppearance attr to the current style's textAppearance (老实说,我不太确定这是什么意思)。

基本上,它不会造成太大的伤害,也不会有太多帮助。并不是很多。这很大程度上取决于你。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63407074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档