问题标签 [android-layout-direction]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 设置为 RTL 的 Android LayoutDirection 并不总是有效
我有 Android 应用程序,我需要将整个应用程序的布局强制为RTL
. 我通过使用 xml 属性来做到这一点android:layoutDirection="rtl"
。
一切正常,直到在我的一个活动中我需要手动finish()
活动并返回到前一个活动,此后我手动强制打开RTL
方向的每个视图都恢复到LTR
模式,直到我完全关闭应用程序并启动它再次。
我正在使用这段代码BaseActivity
来强制使用迄今为止运行良好的语言。
注意:我尝试将以下代码放入onCreate
myBaseActivity
无济于事:
android - Xamarin Android:从 Java 到 C# 的等效代码是什么:resource.getConfiguration().getLayoutDirection() == View.LAYOUT_DIRECTION_RTL;
我试图从这个 java 代码中获取 Xamarin Android 中的布局方向:
我试图制作这段代码:
我正在尝试在 xamarin Android 中实现此代码(来自 shnizlon 的回答):
android - android textview可绘制自动镜像不适用于RTL支持
我已经RTL
为我的阿拉伯语申请提供了支持。
除一种情况外,一切正常。
如果我使用android:drawableRight
或android:drawableEnd
在我TexView
的如下。如果我启用或禁用RTL
模式,图标位置将显示完美。但自动镜像不适用于可绘制对象。
android - 如何在android中从右到左我的菜单项
我想做一个 RTL 菜单。我已阅读此页面:从右到左的菜单项 Android 和http://developer.android.com/reference/android/util/LayoutDirection.html#LTR 但它们对我没有帮助。我已将 android:supportsRtl="true" 添加到清单文件中。这是xml代码:
但它仍然是ltr。我也试过:
但它也不起作用。
TIA。
android - 迁移到 androidX 后,在运行时以编程方式更改本地化不再适用于 pre-Oreo sdk 26
我能够使用本文中介绍的方法在运行时以编程方式更改本地化。我能够更改应用程序的语言。+ 布局方向 + 工具栏语言。
这是我的代码:
构建.gradle
}
问题: 在我迁移到 androidX 之前,这段代码一直运行良好。现在,它仅适用于装有 Android Oreo+ 的设备。我在迁移到 androidX 之前检查了一个备份版本,它运行良好。我在这里缺少什么吗?
android - 更改应用程序区域设置有时不会改变布局的方向
我正在使用以下方法以编程方式更改我的应用程序的语言环境。它工作正常,但是当我使用 Intent.FLAG_ACTIVITY_CLEAR_TOP 标志启动已经存在的singleTask活动时。然后应用程序失去了布局方向,但翻译是正确的。例如,如果应用程序语言是阿拉伯语,则所有视图方向都更改为英语区域设置(从左到右)。可能是什么原因?
我在 BaseActivity 和 Application 类的 attachBaseContext 中调用以下方法。
任何想法都将是可观的。谢谢
android - 当清单中有`android:supportsRtl =“false”`时,如何在运行时更改ConstraintLayout的布局方向?
背景
我的任务是处理清单中包含的应用程序android:supportsRtl="false"
。不知道为什么这样设置,但似乎在某些地方用户可以选择方向。同样在某些情况下它是浮动的(使用系统警报窗口权限)。
问题
我想要一些 ConstraintLayout,我可以在运行时改变它的方向,事实上在这个应用程序中我必须让用户选择方向。
为此,我做了一个小型 POC,结合了我能找到的所有基本案例,以确保所有案例都会受到影响:
正如预期的那样,在 LTR 上,它们都向左对齐。
这里的问题是,无论是否尝试更改布局的方向,它似乎只影响前两种情况(如果标志设置为 false,则更糟,因为它不会导致任何事情发生)。
我试过的
首先,我想看看它是如何在不设置android:supportsRtl="false"
. 我尝试更改 ConstraintLayout 的布局方向,遗憾的是它只影响了 2 个 TextView:
当将语言环境更改为 RTL 语言时也会发生这种情况(例如希伯来语)。
正如我写的那样,添加标志使它们都好像仍然在 LTR 上:所有都向左对齐。
我也试过打电话container.requestLayout()
。它没有帮助。
我只想在这个布局上工作,而不改变其他地方的行为,这可能会导致那里的视觉错误。所以我不想更改标志(我已经注意到当设备的语言环境设置为 RTL 语言时它会导致很多问题)。
问题
- 为什么只有 2 个案例会受到方向的影响?我怎么能让另一个人也受到影响?
- 即使设置了标志(),我如何强制改变方向
android:supportsRtl="false"
?我希望它只适用于这种布局(至少现在是这样),并且不影响应用程序的任何地方。