LinearLayout: showDividers = "middle" не работает с направлением макета RTL

Итак, у меня есть LinearLayout, где я использую разделители, чтобы добавить некоторый интервал между элементами:

<LinearLayout
    android:layout_width = "match_parent"
    android:layout_height = "wrap_content"
    android:orientation = "horizontal"
    android:showDividers = "middle"
    android:divider = "@drawable/spacer_standard">

    <TextView
        android:id = "@+id/product_view_price"
        android:fontFamily = "@font/primary_font"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:maxLines = "1"/>

    <TextView
        android:id = "@+id/product_view_sale_discount"
        android:fontFamily = "@font/primary_font"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:maxLines = "1"
        android:visibility = "gone"
        tools:visibility = "visible"/>
</LinearLayout>

Это работает, как ожидалось, когда конфигурация слева направо, но в локали справа налево разделитель отображается, но игнорируется (он отображается за текстовыми представлениями, а интервал не применяется).

На всякий случай вот разделитель выдвижной

<shape
    xmlns:android = "http://schemas.android.com/apk/res/android"
    android:shape = "rectangle">

<size
    android:width = "@dimen/standard_single_margin"
    android:height = "@dimen/standard_single_margin" />

<solid android:color = "@android:color/transparent" />

Я знаю, что могу сделать обходной путь, просто добавив разделители вручную в качестве представлений, но я пытался избежать этого, поскольку я также использую эти типы разделителей в других более крупных макетах.

Google не заботится о RTL. Я обошел это с помощью тегов <Space>

deviant 08.01.2021 11:54
15
1
433
0

Другие вопросы по теме