android - Gravity of two side-by-side TextViews -
i'm trying have 2 textviews side-by-side, , want 1 touching right-side of screen , other, left-side. don't want define widths using numbers because screens of different sizes behave differently. i'm trying use layout_gravity, not working reason.
<linearlayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:textsize="16dp" android:layout_gravity="left" android:text="rrr" android:textcolor="@color/secondtextcolor" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:textsize="16dp" android:text="sss" android:textcolor="@color/secondtextcolor" /> </linearlayout>
can tell me why? thanks!
you can create 1 linearlayout
each textview
follows :
<linearlayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="start"> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:textsize="16dp" android:text="rrr" android:textcolor="#f2f2" /> <linearlayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="end"> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:textsize="16dp" android:text="sss" android:textcolor="#f3f3" /> </linearlayout> </linearlayout>
and important thing in first linearlayout
put android:gravity="start"
, in second 1 android:gravity="end"
, work :)
use end
instead of right
ensure correct behavior in right-to-left locales.
why "end" better "right"?
using gravity#left
, gravity#right
can lead problems when layout rendered in locales text flows right
left
. use gravity#start
, gravity#end
instead. similarly, in xml
gravity , layout_gravity
attributes, use start
rather left
. xml attributes such paddingleft
, layout_marginleft
, use paddingstart
, layout_marginstart
. note: if minsdkversion
less 17, should add both older left/right
attributes new start/right
attributes. on older platforms, rtl
not supported , start/right
attributes unknown , therefore ignored, need older left/right
attributes. there separate lint check catches type of error.
(note: gravity#left
, gravity#start
, can use these constants when targeting older platforms, because start bitmask superset of left bitmask. therefore, can use gravity="start"
rather gravity="left|start"
.)
Comments
Post a Comment