Android - 如何根据设备在 xml 中设置可见性?

标签 android xml android-layout android-view android-resources

我有一个 TextView在我的 Activity 中应该是 visible通常,但是 gone用于平板设备。

我知道我可以为平板电脑创建一个新的布局文件,但这似乎有很多重复,所以我想做的是在我的(单个)布局文件中设置类似...

android:visibility="@string/my_textview_visibility"

...对于 TextView .然后,在我的字符串资源文件中,设置...

<string name="my_textview_visibility">gone</string> (在 values/strings.xml 中)

...和...

<string name="my_textview_visibility">visible</string> (在values-sw720dp/strings.xml)

...隐藏平板电脑的 TextView。

但是,当我尝试此操作时,应用程序在尝试显示该 Activity 时崩溃了。

我是否需要使用常量值而不是上述字符串值 - 例如,

"visible" -> 0

"gone" -> 8

..如果是这样,向我的 XML 文件添加/引用这些值的正确方法是什么?

或者有其他/更好的方法吗?

注意 - 我不想显示/隐藏 TextView在我的 Java 代码中编程。

最佳答案

您应该使用 /values/integers/ 代替:

values/integers.xml

<integer name="my_textview_visibility">0</integer> <!-- 0 = View.VISIBLE -->

values-sw720dp/integers.xml

<integer name="my_textview_visibility">2</integer> <!-- 2 = View.GONE -->

然后这样调用:

android:visibility="@integer/my_textview_visibility"

关于Android - 如何根据设备在 xml 中设置可见性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43144991/

相关文章:

Java XML WS-安全签名; X.509 token 配置文件;添加安全 token 引用

android - 用于小屏幕尺寸的 dimen.xml 的值文件夹

android - 如何在设备屏幕右侧显示 AdMob 广告

android - 在android中加载本地谷歌地图有什么限制吗?

android - 如何在 Android 模拟器 >= API 级别 14 (x86/ARM) 上预安装 Scala 库

java - XML - Java 中的 XPath DOM 解析器

php - XML解析错误: mismatched tag </br> in PHP XML File

android-layout - 使用 9-patch 图像进行应用程序开发

android - 如何绘制矩形对象的网格?

Android:Textview 中的规则/水平线