最近,我收到了用户的报告,说应用程序的布局方向被打乱,不能正确显示。
我把所有的方向 ltr 在 style.xml
但有些用户改 电话语言.结果,设备默认的布局方向发生变化,导致应用方向反转,(但我不希望)
ltr 改为 rtl
rtl 改为 ltr
我的假设是,如果我把静态布局方向设置在 style.xml
布局永远不会改变方向,但它没有工作,方向被改变了,我要做什么?
下面介绍一下如何在活动中强制设置LTR。
<item name="android:layoutDirection">ltr</item>
比如说,你可以在活动中强制使用LTR。
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:layoutDirection">ltr</item>
</style>
你也可以直接在布局中使用它 在一个视图中结合不同的方向。
android:layoutDirection="rtl"
例如:你也可以直接在布局中使用它,在一个视图上组合不同的方向。
<LinearLayout android:id="@+id/layout_linearlayout_rtl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layoutDirection="rtl">
<LinearLayout android:id="@+id/layout_linearlayout_rtl_child_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layoutDirection="ltr" />
<LinearLayout android:id="@+id/layout_linearlayout_rtl_child_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layoutDirection="rtl" />
<LinearLayout android:id="@+id/layout_linearlayout_rtl_child_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layoutDirection="inherit" />
<LinearLayout android:id="@+id/layout_linearlayout_rtl_child_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layoutDirection="locale" />
</LinearLayout>
它可以从API 17开始使用。
希望对你有帮助
试试这个
android:supportsRtl="false"
在manifest.xml中设置 <application>
标签