gpt4 book ai didi

android - 引用属性枚举值

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:04:32 25 4
gpt4 key购买 nike

是否可以在提供样式参数时引用枚举值?
例如,我们可以这样做:

<!-- layouts.xml -->
<TextView
android:text="@string/str" />

<!-- values.xml -->
<item type="string" name="str">hi</item>

这适用于字符串、整数、维度等,但我需要引用一个enum 值——例如visibility 属性。我正在寻找类似的东西:

<!-- layouts.xml -->
<TextView
android:visibility="@????/viz" />

<!-- values.xml -->
<item type="?????" name="viz">gone</item>

visibility 只是一个示例 - 它可以是任何其他基于枚举的属性。

到目前为止我发现的唯一解决方法是使用样式

<!-- layouts.xml -->
<TextView
android:style="@styles/theStyle" />

<!-- styles.xml -->
<style name="theStyle">
<item name="android:visibility">gone</item>
</style>

但这在某种程度上是有限制的,因为如果您需要将 真实 样式与 TextView 一起使用,并且这种仅用于控制单个属性的 特殊 样式,它会变得越来越复杂.

另一种选择是,如果有一种方法可以引用单个样式项。像这样的东西:

<TextView
android:visibility="@styles/theStyle/visibility" />

但我认为上述可能性更小。

最佳答案

每个枚举实际上是一组命名整数。例如,visibility 属性声明如下:

<attr name="visibility">
<enum name="visible" value="0" />
<enum name="invisible" value="1" />
<enum name="gone" value="2" />
</attr>

所以你可以直接通过它的值来引用枚举项。像这样:

<!-- values.xml -->
<item name="viz" type="integer">1</item>

<!-- layouts.xml -->
<TextView
android:visibility="@integer/viz"/>

我刚刚在手机上检查过,它运行良好。

关于android - 引用属性枚举值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14176563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com