首选项 xml 中的 android:visibility 属性不起作用? (安卓 2.3)
Posted
技术标签:
【中文标题】首选项 xml 中的 android:visibility 属性不起作用? (安卓 2.3)【英文标题】:android:visibility attribute in preferences xml not working? (Android 2.3) 【发布时间】:2012-08-01 09:38:35 【问题描述】:以这个小preference.xml文件为例:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen android:title="@string/sig_title" xmlns:android="http://schemas.android.com/apk/res/android">
<ListPreference android:entries="@array/text_display_entries" android:title="@string/sig_style" android:key="text_style" android:entryValues="@array/text_display_values" />
<CheckBoxPreference android:title="@string/custom_font" android:key="tweaks_text" />
<CheckBoxPreference android:title="@string/col_random" android:key="random_color_pref" />
<CheckBoxPreference android:visibility="invisible" android:enabled="false" android:title="@string/sig_show" android:key="show_sig" />
</PreferenceScreen>
最后一个复选框的属性 android:visibility="invisible" 不起作用;此属性(或已消失)不适用于偏好?
我在代码中没有任何东西可以影响其可见性,只是好奇为什么这不起作用。
【问题讨论】:
【参考方案1】:android:visibility
用于显示和隐藏View
s,但对于Preference
无效。 Preference
的 documentation 列出了可用的 XML 属性,但它们都不是您想要的。
不过, 可以通过编程方式在 PreferenceScreen
中添加和删除首选项。
【讨论】:
【参考方案2】:对于 AndroidX 用户,将其直接添加到您的偏好 XML 中
app:isPreferenceVisible="false"
【讨论】:
【参考方案3】:您必须使用setVisible
方法来更改可见性。
首先,初始化复选框首选项。
CheckBoxPreference showSigPreference = (CheckBoxPreference) findPreference("show_sig");
然后
// Show the check box preference
showSigPreference.setVisible(true);
// Hide the check box preference
showSigPreference.setVisible(false);
【讨论】:
这对我不起作用,因为setVisible
甚至不是我的CheckBoxPreference
的选项。
developer.android.com/reference/androidx/preference/…
我明白了,你使用的是androidx。【参考方案4】:
我意识到这是一个较老的问题,以前在 xml 中没有可接受的答案。
现在通过添加 AppCompat 库可以直接在 xml 中执行此操作。请参阅https://***.com/a/54154665/114549 上的完整示例
【讨论】:
以上是关于首选项 xml 中的 android:visibility 属性不起作用? (安卓 2.3)的主要内容,如果未能解决你的问题,请参考以下文章
覆盖 Visual Studio Tools for Apache Cordova config.xml 文件中的 windowSoftInputMode 首选项