我有一个带有2种风味的应用程序:“以色列”和“法国”。 对于每种构建风格,我都想强制布局方向,让以色列成为RTL,让法国成为LTR,而不考虑设备语言。 我检查了整个互联网,没有找到任何有关它的信息。 我该怎么办?
答案 0 :(得分:0)
您可以通过使用Gradle productFlavors
,然后在每个样式中定义一个“基本”样式来完成此操作。
首先,将其添加到您的应用程序级别的build.gradle文件中:
android {
...
flavorDimensions "direction"
productFlavors {
left {
dimension "direction"
}
right {
dimension "direction"
}
}
}
第二,在app/src/
下创建两个新目录
app/src/left/res/values/
app/src/right/res/values
然后在每个文件的内部创建一个styles.xml
文件并添加以下样式:
<resources>
<style name="AppThemeBase" parent="[put whatever you had as AppTheme's parent here]">
<item name="android:layoutDirection">ltr</item>
</style>
</resources>
(对于ltr
productFlavor使用left
,对于rtl
productFlavor使用right
。)
最后,在您的app/src/main/res/values/styles.xml
中,将您的AppTheme
样式更改为从AppThemeBase
继承:
<style name="AppTheme" parent="AppThemeBase">
...
</style>
现在,您应该拥有leftDebug
,leftRelease
,rightDebug
和rightRelease
之类的构建变体。构建leftDebug
或leftRelease
时,所有内容都会从左到右。构建rightDebug
或rightRelease
时,一切都会从右到左。
答案 1 :(得分:0)
找到了一个完美的库来强制在Android中使用Locale,就像魔术一样!