从整数资源文件设置布局引力

Set layout gravity from integers resource file

重力值必须存储在资源文件中,因为我有一个多语言应用程序。 (Arabic/English) 这将影响从ltr到rtl的布局方向。

我曾经成功地使用 eclipse adt 执行相同的方法。

错误提示:无法解析标志。验证 android xml 个文件中的资源引用。

我后来认识到,即使是用红色突出显示的那一行,这是它可以编译的错误的颜色,运行。

显然,因为新的 SDK API 通过在清单中提供 supportRtl 属性来支持语言方向。 Google 试图鼓励开发人员使用它并阻止他们继续以这种方式使用引力来实现语言方向。这就是它标有红色的原因。

您可以在 /values 和 /values-sw600dp 文件夹中创建两种样式(在 styles.xml 中)

/values/styles.xml

 <style name = "AppContainerLayout">
     <item name = "android:gravity">top|start</item>
 </style>

/values-sw600dp/styles.xml

<style name = "AppContainerLayout">
    <item name = "android:gravity">center</item>
</style>

并且只在布局中使用

<LinearLayout
             style = "@ style/AppContainerLayout"
             android:layout_width = "match_parent"
             android:layout_height = "wrap_content"
             android:orientation = "vertical">

             // childs
</LinearLayout>