Search code examples
androidandroid-layoutandroid-relativelayout

How to implement this type of layout


In my application, i want the layout like in the image below. enter image description here

I have been trying this for hours but could not get the desired results.

Here is my layout xml:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingTop="@dimen/activity_vertical_margin" >

    <View
        android:id="@+id/middleSeperator"
        android:layout_width="1dp"
        android:layout_height="fill_parent"
        android:layout_alignParentTop="true"
        android:background="#90909090" />

    <LinearLayout
        android:id="@+id/leftLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_toLeftOf="@id/middleSeperator"
        android:gravity="right"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/batt_health"
            android:textColor="@color/white" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/activity_vertical_margin"
            android:text="@string/batt_level"
            android:textColor="@color/white" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/activity_vertical_margin"
            android:text="@string/batt_status"
            android:textColor="@color/white" />

        <TextView
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/activity_vertical_margin"
            android:text="@string/batt_tech"
            android:textColor="@color/white" />

        <TextView
            android:id="@+id/textView5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/activity_vertical_margin"
            android:text="@string/batt_temp"
            android:textColor="@color/white" />

        <TextView
            android:id="@+id/textView6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/activity_vertical_margin"
            android:text="@string/batt_voltage"
            android:textColor="@color/white" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/rightLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/middleSeperator"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textViewHealth"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="@dimen/activity_horizontal_margin"
            android:layout_marginTop="@dimen/activity_vertical_margin"
            android:textColor="@color/teal"
            android:textStyle="bold"
            tools:ignore="SelectableText" />

        <TextView
            android:id="@+id/textViewLevel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="@dimen/activity_horizontal_margin"
            android:layout_marginTop="@dimen/activity_vertical_margin"
            android:textColor="@color/teal"
            android:textStyle="bold"
            tools:ignore="SelectableText" />

        <TextView
            android:id="@+id/textViewStatus"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="@dimen/activity_horizontal_margin"
            android:layout_marginTop="@dimen/activity_vertical_margin"
            android:textColor="@color/teal"
            android:textStyle="bold"
            tools:ignore="SelectableText" />

        <TextView
            android:id="@+id/textViewTech"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="@dimen/activity_horizontal_margin"
            android:layout_marginTop="@dimen/activity_vertical_margin"
            android:textColor="@color/teal"
            android:textStyle="bold"
            tools:ignore="SelectableText" />

        <TextView
            android:id="@+id/textViewTemp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="@dimen/activity_horizontal_margin"
            android:layout_marginTop="@dimen/activity_vertical_margin"
            android:textColor="@color/teal"
            android:textStyle="bold"
            tools:ignore="SelectableText" />

        <TextView
            android:id="@+id/textViewVoltage"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="@dimen/activity_horizontal_margin"
            android:layout_marginTop="@dimen/activity_vertical_margin"
            android:textColor="@color/teal"
            android:textStyle="bold"
            tools:ignore="SelectableText" />
    </LinearLayout>
</RelativeLayout>

With this, left side textviews are not visible. Please Help.


Solution

  • You can do this in many ways, one can be using plain LinearLayout as container, then set your both TextViews width to fill_parent AND set android:layout_weight="1" on both TextViews so they take 50% of the available width. And then you need to put the vertical line in between with fixed size like 1dp (you can put ImageView or even empty FrameLayout with background color).