Android: TableLayout aligns the first column to the right, the second to the left

What should I do to get something like this:

Image sample

I can do it without problems in HTML, but how in Android?

+6
source share
3 answers
Use TextViews and gravity <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TableRow android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="right" android:text="key" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="left" android:text="value" /> </TableRow> <TableRow android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="right" android:text="More key" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="left" android:text="More value" /> </TableRow> <TableRow android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="right" android:text="Even more key" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="left" android:text="Even more value" /> </TableRow> </TableLayout> 
+2
source
 Write first TextView wight=1 and second TextView wight=2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TableRow android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="right" android:text="key" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="2" android:gravity="left" android:text="value" /> </TableRow> <TableRow android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="right" android:text="More key" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="2" android:gravity="left" android:text="More value" /> </TableRow> <TableRow android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="right" android:text="Even more key" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="2" android:gravity="left" android:text="Even more value" /> </TableRow> </TableLayout> </LinearLayout> 
+1
source

In the columns of your TableLayout you should use a TextView to display the content.

So for the first column try this,

 <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="right" android:text="Key" android:textColor="@android:color/black"/> 

and for the second column try this,

 <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="left" android:text="Value" android:textColor="@android:color/black"/> 
0
source

Source: https://habr.com/ru/post/949817/


All Articles