Reputation: 37
I have a view that is constructed of many buttons in a certain order that is achieved through the use of margins, but for some reason when I push the app to a device the margins end up reversed and thus i get a flipped image on a xiaomi honor android 5.1 api 22 but on a 5.4 fwvga android 9 api 28 everything is as expected.
My main activity xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
tools:context=".MainMap">
<android.support.constraint.ConstraintLayout
android:layout_width="@dimen/map_width"
android:layout_height="@dimen/map_height"
android:background="@drawable/menu_map"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<Button
android:id="@+id/MaalotButton"
style="@android:style/Widget.Holo.Light.Button.Borderless.Small"
android:layout_width="32dp"
android:layout_height="10dp"
android:layout_marginStart="96dp"
android:layout_marginLeft="96dp"
android:layout_marginTop="28dp"
android:text="@string/PaPMaalot"
android:textSize="8sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/ShderotButton"
style="@android:style/Widget.Holo.Light.Button.Borderless.Small"
android:layout_width="32dp"
android:layout_height="10dp"
android:layout_marginTop="24dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:text="@string/PaPShderot"
android:textSize="8sp"
app:layout_constraintEnd_toEndOf="@+id/AshdodButton"
app:layout_constraintTop_toBottomOf="@+id/AshdodButton" />
<Button
android:id="@+id/KfarVardimButton"
style="@android:style/Widget.Holo.Light.Button.Borderless.Small"
android:layout_width="46dp"
android:layout_height="10dp"
android:layout_marginEnd="6dp"
android:layout_marginRight="6dp"
android:text="@string/PaPKfarVradim"
android:textSize="8sp"
app:layout_constraintEnd_toEndOf="@+id/MaalotButton"
app:layout_constraintTop_toBottomOf="@+id/MaalotButton" />
<Button
android:id="@+id/TalElButton"
style="@android:style/Widget.Holo.Light.Button.Borderless.Small"
android:layout_width="32dp"
android:layout_height="10dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:text="@string/PaPTalEl"
android:textSize="8sp"
app:layout_constraintEnd_toEndOf="@+id/KfarVardimButton"
app:layout_constraintTop_toBottomOf="@+id/KfarVardimButton" />
<Button
android:id="@+id/CholonButton"
style="@android:style/Widget.Holo.Light.Button.Borderless.Small"
android:layout_width="32dp"
android:layout_height="10dp"
android:layout_marginTop="110dp"
android:layout_marginEnd="12dp"
android:layout_marginRight="12dp"
android:text="@string/PaPCholon"
android:textSize="8sp"
app:layout_constraintEnd_toStartOf="@+id/TalElButton"
app:layout_constraintTop_toBottomOf="@+id/TalElButton" />
<Button
android:id="@+id/AshdodButton"
style="@android:style/Widget.Holo.Light.Button.Borderless.Small"
android:layout_width="32dp"
android:layout_height="10dp"
android:layout_marginTop="18dp"
android:layout_marginEnd="14dp"
android:layout_marginRight="14dp"
android:text="@string/PaPAshdod"
android:textSize="8sp"
app:layout_constraintEnd_toEndOf="@+id/CholonButton"
app:layout_constraintTop_toBottomOf="@+id/CholonButton" />
<Button
android:id="@+id/TfachotButton"
style="@android:style/Widget.Holo.Light.Button.Borderless.Small"
android:layout_width="32dp"
android:layout_height="10dp"
android:layout_marginTop="7dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:text="@string/PaPTfachot"
android:textSize="8sp"
app:layout_constraintEnd_toEndOf="@+id/BarYochayButton7"
app:layout_constraintTop_toBottomOf="@+id/BarYochayButton7" />
<Button
android:id="@+id/DaltonButton"
style="@android:style/Widget.Holo.Light.Button.Borderless.Small"
android:layout_width="32dp"
android:layout_height="10dp"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:text="@string/PaPDalton"
android:textSize="8sp"
app:layout_constraintStart_toEndOf="@+id/MaalotButton"
app:layout_constraintTop_toTopOf="@+id/MaalotButton" />
<Button
android:id="@+id/BarYochayButton7"
style="@android:style/Widget.Holo.Light.Button.Borderless.Small"
android:layout_width="38dp"
android:layout_height="10dp"
android:layout_marginTop="7dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:text="@string/PaPBarYochay"
android:textSize="8sp"
app:layout_constraintEnd_toEndOf="@+id/DaltonButton"
app:layout_constraintTop_toBottomOf="@+id/DaltonButton" />
</android.support.constraint.ConstraintLayout>
</android.support.constraint.ConstraintLayout>
I expect a pattern but i get a flipped one.
Upvotes: 0
Views: 305
Reputation: 56
I believe it's the way you set up your margins. More than likely, your devices have different languages set as the default.
Margin Left - creates a margin that is relative from the left.
Margin Right - creates a margin that is relative from the right.
Margin Start - creates a margin that is relative from the side that the device's writing system starts at.
If my device's language is English, a left-to-right (LTR) writing system, Margin Start is essentially the same as Margin Left.
If however, my device's language was Hebrew, a right-to-left (RTL) writing system, then Margin Start is essentially the same as Margin Right.
Margin End - is the opposite of Margin Start.
Solution - If you would like to create margins independent of the device's language, remove all marginStart and marginEnd attributes, and only use marginLeft and marginRight attributes.
Upvotes: 1