Context: I have a widget which basically consists of a RelativeLayout wrapping a bunch of TextViews. Here's what I want the widget to visually look like, followed by the the XML Layout code:
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/alarm_widget_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
android:id="@+id/alarm_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="8:30"
android:textSize="40sp"
/>
android:id="@+id/alarm_am_pm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/alarm_time"
android:layout_marginLeft="2dp"
android:layout_alignTop="@id/alarm_time"
android:textSize="18sp"
android:text="AM"
/>
android:id="@+id/alarm_days"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@id/alarm_time"
android:textSize="16sp"
android:text="M T W T F S S"
/>
android:id="@+id/toggle_indicator"
android:layout_height="8sp"
android:layout_width="80sp"
android:layout_below="@id/alarm_days"
android:layout_centerHorizontal="true"
android:background="@drawable/toggle_button_oval"
/>
Question: I'm stumped with the inconsistent behaviour of layout_marginLeft in the following scenarios:
When these widgets are stacked vertically inside a LinearLayout, the AM/PM text in the top-right requires android:layout_marginLeft="15dp" to look like it does in the picture above.
However, when the widgets are stacked in a 2x2 TableLayout, the AM/PM text requires android:layout_marginLeft="2dp" to look correct.
Why am I seeing this inconsistent behaviour? What does layout_marginLeft use as it's "origin"?