Sha*_*evy 9 android bidi android-layout right-to-left
Android 4.2引入了RTL(BiDi)支持,开始使用它我只需按照说明(android:supportsRtl属性到清单文件中的元素并将其设置为"true")
但是,我的ActionBar徽标也会改变方向(右侧显示徽标),这是我不想要的.我确实想使用RTL功能,但将ActionBar保持在左侧...
换句话说,当语言方向为RTL时,如何使用android:supportsRtl属性而不更改Android 4.2上的ActionBar方向
有什么建议 ?
and*_*per 11
我有同样的问题,只有我有一个slidingMenu(AKA导航抽屉),所以它甚至更奇怪(意味着你点击右上角的"向上"按钮,并在左侧显示抽屉......).
有两种可能的解决方案:
按代码,在每个活动中:
Run Code Online (Sandbox Code Playgroud)if (VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN_MR1) getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_LTR);
按主题.编辑您自己的自定义主题,并添加正确的行.例:
Run Code Online (Sandbox Code Playgroud)<style name="AppTheme" parent="@style/Theme.Sherlock.Light"> <item name="actionBarStyle">@style/CustomActionBarStyle</item> <item name="android:actionBarStyle" tools:targetApi="honeycomb">@style/CustomActionBarStyle</item> </style> <style name="CustomActionBarStyle" parent="@style/Widget.Sherlock.Light.ActionBar"> <item name="android:layoutDirection" tools:targetApi="jelly_bean_mr1">ltr</item> </style>
小智 3
首先,不用抱歉,当您处于 RTL 模式时,ActionBar 应该会镜像。这一点已经由 bidi/rtl 专家检查和验证。设置 android:supportsRtl=true 意味着您的应用愿意支持 RTL 布局镜像。如果您这样做,那么 ActionBar(与每个 Android 框架小部件一样)将被镜像,因为以 LTR 方向显示它没有意义。
其次,您关于访问左上角或右上角菜单的屏幕尺寸和人体工程学问题的争论与 RTL 支持无关。如果在 LTR 模式下存在此类问题,那么在 RTL 模式下也会遇到完全相同的问题。这仅与屏幕尺寸有关。
第三,所有 Android UI 框架小部件本身都支持 RTL 镜像。如果您发现问题,请在公共错误跟踪系统上提交错误。
第四,Google Apps 将支持 RTL 布局,并在需要时使用这些新的公共 RTL API。这与 Android 框架支持完全无关。第一个支持 RTL 的应用程序是“设置”应用程序(以某些尚不支持 RTL 的提供程序为模数)。
第五,关于向后移植,我假设您正在讨论是否应该将此功能放入支持库甚至旧版 Android 版本中。对于较旧的 Android 版本,无法执行此操作,因为它们的代码库已冻结。对于支持库,我们不能这样做,因为我们必须更改视图和其他基本小部件组件。
最后,如果您认为发现了问题,请采取更具建设性的方法并提交错误报告,或者只是针对可能缺少的任何内容提出功能请求。
| 归档时间: |
|
| 查看次数: |
5119 次 |
| 最近记录: |