Solo
Solo

Reputation: 579

Table text align right

I am trying to create a table in Android. I got really far, but I have problems with the HeadLineSum and BodySum not horizontal floating to the far right. I made a Excel layout to show what I really wanted.

enter image description here

And this is what I have managed to create. enter image description here

My Android Layout code:

    <!-- Breakfast -->
        <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

            <TableRow
                android:id="@+id/tableRowHeadlineBreakfast"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">

                <ImageView
                    android:id="@+id/imageViewAddBreakfast"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    app:srcCompat="@drawable/ic_menu_add" />

                <TextView
                    android:id="@+id/textViewHeadlineBreakfast"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="80"
                    android:text="@string/breakfast"
                    android:textSize="18sp" />

                <TextView
                    android:id="@+id/textViewEnergyBreakfast"
                    android:layout_width="wrap_content"
                    android:layout_height="fill_parent"
                    android:layout_weight="10"
                    android:text="@string/energy"
                    android:textSize="18sp" />
            </TableRow>
        </TableLayout>
    <TableLayout
        android:id="@+id/tableLayoutBreakfastItems"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <TableRow
            android:id="@+id/tableRowBreakfastItems"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

            <TextView
                android:id="@+id/textViewBreakfastItemsName"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="80"
                android:text="@string/name"
                android:textSize="18sp" />

            <TextView
                android:id="@+id/textViewBreakfastItemsEnergy"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_weight="10"
                android:text="@string/energy"
                android:textSize="18sp" />
        </TableRow>

        <TableRow
            android:id="@+id/tableRowBreakfastItemsSub"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

            <TextView
                android:id="@+id/textViewBreakfastItemsSub"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/name" />

        </TableRow>

    </TableLayout>
    <!-- //Breakfast -->

Upvotes: 0

Views: 62

Answers (1)

ND1010_
ND1010_

Reputation: 3841

Table Layout is too old technique to achieve this type of design you should use LinearLayout for same.

If you want still achieve this type of design using TableLayout Just Copy Paste my code

Here is my code

First create border.xml file in to drawable folder

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

    <stroke android:width="1dp" android:color="#fff" />

</shape>

then copy paste this code main_activity.xml

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_table_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorPrimary"
    android:orientation="vertical"
    tools:context="com.example.dhruv.demovolleyjson.TableLayout">


    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <ImageView
                android:layout_width="40dp"
                android:layout_height="40dp"

                android:background="@drawable/border"
                android:padding="5dp"
                android:src="@mipmap/ic_launcher" />

            <TextView
                android:id="@+id/textViewHeadlineBreakfast"
                android:layout_width="match_parent"

                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/border"
                android:gravity="center_vertical"
                android:padding="5dp"
                android:text="Breakfast"
                android:textColor="#fff"
                android:textSize="20sp" />

            <TextView
                android:layout_width="match_parent"
                android:layout_height="match_parent"

                android:layout_gravity="right"
                android:background="@drawable/border"
                android:gravity="center"
                android:padding="5dp"
                android:text="Energy"
                android:textColor="#fff"
                android:textSize="20sp" />

        </TableRow>

    </TableLayout>

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="40dp">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="40dp"

                android:layout_weight="1"
                android:background="@drawable/border"
                android:gravity="center_vertical"
                android:padding="5dp"
                android:text="Name"
                android:textColor="#fff"
                android:textSize="20sp" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="match_parent"

                android:layout_gravity="right"
                android:background="@drawable/border"
                android:gravity="center"
                android:padding="5dp"
                android:text="Energy"
                android:textColor="#fff"
                android:textSize="20sp" />
        </TableRow>
    </TableLayout>

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="40dp">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="40dp"
                android:background="@drawable/border"
                android:gravity="center_vertical"
                android:padding="5dp"
                android:text="Name"
                android:textColor="#fff"
                android:textSize="20sp" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_gravity="right"
                android:layout_weight="1"
                android:background="@drawable/border"
                android:gravity="center"
                android:padding="5dp"
                android:textColor="#fff"
                android:textSize="20sp" />
        </TableRow>
    </TableLayout>


</LinearLayout>

enter image description here

Upvotes: 1

Related Questions