Android 4.2引入了RTL(BiDi)支持,开始使用它我只是按照说明(android:supportsRtl属性到你的清单文件中的元素,并将其设置为“true”)
但是后来我的ActionBar标志也改变了右边的方向(徽标显示在右边),我不想要.
我确实想使用RTL功能,但是将ActionBar保留在左边…
换句话说,当语言方向是RTL时,如何使用android:supportsRtl属性,而不改变Android 4.2上的ActionBar方向
有什么建议么 ?
解决方法
首先,不要抱歉,当您处于RTL模式时,ActionBar应该镜像.这一点已经由bidi / rtl专家检查和验证.设置android:supportsRtl = true表示您的应用程序愿意支持RTL布局镜像.如果你这样做,那么ActionBar(像每个Android Framework小部件)都将被镜像,因为在LTR方向上显示它是没有意义的.
其次,您关于访问左上角或右上角菜单的屏幕尺寸和人体工程学问题的争论与RTL支持无关.如果在LTR模式下有这样的问题,那么你将在RTL模式下有完全相同的问题.这只与屏幕大小有关.
第三,所有Android UI Framework小部件都是本地支持RTL镜像.如果您发现问题,请在公共bug跟踪系统上提出错误.
第四,Google Apps将支持RTL布局,并在需要时使用这些新的公共RTL API.这完全是从Android Framework支持中解除的.支持RTL的第一个应用程序是“设置”应用程序(其中一些尚未提供RTL的提供程序的模式).
第五,关于backport,我假设你在说如果这个功能应该放在支持库,或者甚至在旧的Android版本.对于较旧的Android版本,这是不可能的,因为他们的代码库被冻结.对于支持库,我们不能这样做,因为我们不得不更改View和其他基本部件组件.