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

3
重力值必须存储在一个资源文件中,因为我有一个多语言应用程序(阿拉伯语/英语),这将影响从ltr到rtl的布局方向。在eclipse adt中,我曾经成功地使用过同样的方法。
错误提示:无法解析标志。请在android xml文件中验证资源引用。
以下是相关截图:
结构:Structure 布局:Layout integers.xml:integers.xml integers.xml:integers.xml

1
我认为你不必使用 gravity。请参考 http://android-developers.blogspot.it/2013/03/native-rtl-support-in-android-42.html。 - Phantômaxx
好的观点。但是我的回答方法确实有效。即使错误仍然存在,但我可以运行应用程序,并且它正在产生我想要的效果。 - hasan
它看起来像是Google试图推动开发人员在清单文件的应用程序项中使用supportRtl属性。这就是为什么即使gravity属性值不是错误且应用程序构建和成功运行,xml布局文件中的标记红色! - hasan
2个回答

0

后来我意识到,即使是那些被标为错误颜色的红线,它们也可以编译和运行。

显然,由于新的SDK API通过在清单中提供supportRtl属性来支持语言方向,谷歌试图鼓励开发人员使用它,并阻止他们继续使用重力来实现语言方向。这就是为什么它被标记为红色的原因。


0

您可以在/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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接