Android View GONE if语言
如果设备设置为英国,我不想显示布局。最好的方法是什么?每次获取设备语言时?每次使用以下代码检查设备语言:Android View GONE if语言,android,layout,view,Android,Layout,View,如果设备设置为英国,我不想显示布局。最好的方法是什么?每次获取设备语言时?每次使用以下代码检查设备语言: Locale.getDefault().getDisplayLanguage(); 然后,如果没有,请按如下方式更改视图的可见性: view.setVisibility(View.GONE); 往这边走,GB代表大不列颠(英国) 使用setVisibility的解决方案可以工作,但是OP想知道最好的方法是什么,以避免每次都使用运行时语言 因此: 为所需语言创建单独的布局(XML文件) 例
Locale.getDefault().getDisplayLanguage();
然后,如果没有,请按如下方式更改视图的可见性:
view.setVisibility(View.GONE);
往这边走,GB代表大不列颠(英国)
使用
setVisibility
的解决方案可以工作,但是OP想知道最好的方法是什么,以避免每次都使用运行时语言
因此:
为所需语言创建单独的布局(XML文件)
例如,创建文件夹layout en rGB
,并在此文件夹中复制要修改的XML文件,然后进行所需的修改
在运行时,每当语言为english UK时,都会自动加载此布局。通常,最好的方法是为视图指定样式,然后创建该样式的默认实现,并覆盖en rGB区域设置的样式。如果布局不是非常简单,那么这是最好的方法,因为您不希望仅为了覆盖一个属性而覆盖整个布局文件 1) 为要隐藏在布局文件中的视图指定样式。这里我使用的是文本视图:
<TextView
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/TastyFoodEditText" />
2) 在res/values/styles.xml中定义样式
<resources>
<style name="TastyFoodEditText" parent="android:style/Widget.EditText">
</style>
</resources>
< P> 3)通过创建具有该内容的文件RE/EngRGB/Sythel.xml来覆盖英国区域的样式
<resources>
<style name="TastyFoodEditText" parent="android:style/Widget.EditText">
<item name="android:visibility">gone</item>
</style>
</resources>
跑了
你有反对英国的东西吗?!我们看不到你的花哨布局?!但是,是的,你可以脱离设备语言。你能解释一下你为什么要这么做吗?我想有一个比你想的简单得多的解决方案。你可以把你的通用布局放在layout
中,把没有特定部分的布局放在layout en rGB
中。只有当设备是来自United Kingdom的英语版本时,才会选择layout en rGB
中的布局。此代码非常不完整:您获得了语言,不要将其存储在变量中和/或与任何内容进行比较。@Burak您是对的,我不需要将其存储在变量中以不显示视图。每次我检查。
<resources>
<style name="TastyFoodEditText" parent="android:style/Widget.EditText">
<item name="android:visibility">gone</item>
</style>
</resources>