Bhav
Bhav

Reputation: 2195

Center-align horizontally UI items on the same row

I'm attempting to create my first Android app and I'd like to center horizontally align two elements on the same row so that they appear on top of each other.

I've tried setting the layout_row to the same value and gravity to center however that shows the ChartView and not the (serviceScore) TextView. If I remove the ChartView, the (serviceScore) TextView displays as expected however I want to display them both. What am I missing? Also, any ideas why the chart cuts off at the bottom?

Code:

<?xml version="1.0" encoding="utf-8"?>
<android.support.wear.widget.BoxInsetLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="@dimen/box_inset_layout_padding"
    tools:deviceIds="wear">
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="@dimen/inner_frame_layout_padding"
        app:boxedEdges="all"
        android:layout_gravity="center_horizontal"
        android:minWidth="25px"
        android:minHeight="25px">
        <GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:rowCount="8"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_gravity="center"
                android:columnCount="1"
                android:orientation="horizontal">
            <TextView
                android:id="@+id/text"
                android:visibility="visible"
                android:textSize="9dp"
                android:gravity="center"
                android:layout_row="1"/>
            <microcharts.droid.ChartView
                android:id="@+id/chartView"
                android:visibility="visible"
                android:layout_row="2"
                android:gravity="center" />
            <TextView
                android:layout_row="2"
                android:text="test"
                android:id="@+id/serviceScore"
                android:visibility="visible"
                android:gravity="center"
                android:textSize="50dp"/>
        </GridLayout>
    </FrameLayout>
</android.support.wear.widget.BoxInsetLayout>

UI:

enter image description here

Upvotes: 0

Views: 233

Answers (1)

sparkle ramani
sparkle ramani

Reputation: 130

use android:layout_gravity="center_horizontal" as,

 <?xml version="1.0" encoding="utf-8"?>
    <android.support.wear.widget.BoxInsetLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="@dimen/box_inset_layout_padding"
        tools:deviceIds="wear">
        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:padding="@dimen/inner_frame_layout_padding"
            android:boxedEdges="all"
            android:layout_gravity="center_horizontal"
            android:minWidth="25px"
            android:minHeight="25px">
            <GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:rowCount="8"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_gravity="center_horizontal"
                android:columnCount="1"
                android:orientation="horizontal">
                <TextView
                    android:id="@+id/text"
                    android:visibility="visible"
                    android:textSize="9dp"
                    android:gravity="center"
                    android:layout_row="1"/>
                <microcharts.droid.ChartView
                    android:id="@+id/chartView"
                    android:visibility="visible"
                    android:layout_row="2"
                    android:gravity="center" />
                <TextView
                    android:layout_row="2"
                    android:text="test"
                    android:id="@+id/serviceScore"
                    android:visibility="visible"
                    android:gravity="center"
                    android:layout_gravity="center_horizontal"
                    android:textSize="50dp"/>
            </GridLayout>
        </FrameLayout>
    </android.support.wear.widget.BoxInsetLayout>

Upvotes: 1

Related Questions