Вы можете сделать это, используя 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
для left
productFlavor и rtl
для right
productFlavor.)
Наконец, в вашем app/src/main/res/values/styles.xml
, измените свой стиль AppTheme
для наследования от AppThemeBase
:
<style name="AppTheme" parent="AppThemeBase">
...
</style>
Теперь у вас должны быть варианты сборки, такие как leftDebug
, leftRelease
, rightDebug
и rightRelease
.Когда вы строите leftDebug
или leftRelease
, все будет слева направо.Когда вы строите rightDebug
или rightRelease
, все будет справа налево.