Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android View GONE if语言_Android_Layout_View - Fatal编程技术网

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>