简体   繁体   中英

Android Relative layout with table layout having button, text and image

在此输入图像描述 Following is the content_main.xml layout file code. Above is the image which I got as output of the design:

 <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        xmlns:android="http://schemas.android.com/apk/res/android">

        <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:weightSum="1"
                android:layout_weight="0.5">
                <RelativeLayout
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.33">
                    <Button
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="Area"
                        android:id="@+id/area"
                        android:textSize="12sp"
                        android:onClick="onClick"
                        android:gravity="center|bottom"
                        android:paddingBottom="10dp"/>
                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerInParent="true"
                        android:id="@+id/imageView" />
                </RelativeLayout>
                <RelativeLayout
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.33">
                    <Button
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="Length"
                        android:id="@+id/length"
                        android:textSize="12sp"
                        android:onClick="onClick"
                        android:gravity="center|bottom"
                        android:paddingBottom="10dp"/>
                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerInParent="true"/>
                </RelativeLayout>
                <RelativeLayout
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.33">
                    <Button
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="Weight"
                        android:id="@+id/weight"
                        android:textSize="12sp"
                        android:onClick="onClick"
                        android:gravity="center|bottom"
                        android:paddingBottom="10dp"/>
                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerInParent="true"/>
                </RelativeLayout>
            </TableRow>

            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="0dp"
                android:weightSum="1"
                android:layout_weight="0.5">
                <RelativeLayout
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.33">
                    <Button
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="Temperature"
                        android:id="@+id/temperature"
                        android:textSize="12sp"
                        android:onClick="onClick"
                        android:gravity="center|bottom"
                        android:paddingBottom="10dp"/>
                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerInParent="true"/>
                </RelativeLayout>
                <RelativeLayout
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.33">
                    <Button
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="Cooking"
                        android:id="@+id/cooking"
                        android:textSize="12sp"
                        android:onClick="onClick"
                        android:gravity="center|bottom"
                        android:paddingBottom="10dp"/>
                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerInParent="true"/>
                </RelativeLayout>
                <RelativeLayout
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.33">
                    <Button
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="Currency"
                        android:id="@+id/currency"
                        android:textSize="12sp"
                        android:onClick="onClick"
                        android:gravity="center|bottom"
                        android:paddingBottom="10dp"/>
                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerInParent="true"/>
                </RelativeLayout>
            </TableRow>

            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="0dp"
                android:weightSum="1"
                android:layout_weight="0.5">
                <RelativeLayout
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.33">
                    <Button
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="Digital Storage"
                        android:id="@+id/storage"
                        android:textSize="12sp"
                        android:onClick="onClick"
                        android:gravity="center|bottom"
                        android:paddingBottom="10dp"/>
                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerInParent="true"/>
                </RelativeLayout>
                <RelativeLayout
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.33">
                    <Button
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="Energy"
                        android:id="@+id/energy"
                        android:textSize="12sp"
                        android:onClick="onClick"
                        android:gravity="center|bottom"
                        android:paddingBottom="10dp"/>
                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerInParent="true"/>
                </RelativeLayout>
                <RelativeLayout
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.33">
                    <Button
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="Fuel Consumption"
                        android:id="@+id/fuel"
                        android:textSize="12sp"
                        android:onClick="onClick"
                        android:gravity="center|bottom"
                        android:paddingBottom="10dp"/>
                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerInParent="true"/>
                </RelativeLayout>
            </TableRow>

            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="0dp"
                android:weightSum="1"
                android:layout_weight="0.5">
                <RelativeLayout
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.33">
                    <Button
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="Power"
                        android:id="@+id/power"
                        android:textSize="12sp"
                        android:onClick="onClick"
                        android:gravity="center|bottom"
                        android:paddingBottom="10dp"/>
                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerInParent="true"/>
                </RelativeLayout>
                <RelativeLayout
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.33">
                    <Button
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="Pressure"
                        android:id="@+id/pressure"
                        android:textSize="12sp"
                        android:onClick="onClick"
                        android:gravity="center|bottom"
                        android:paddingBottom="10dp"/>
                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerInParent="true"/>
                </RelativeLayout>
                <RelativeLayout
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.33">
                    <Button
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="Speed"
                        android:id="@+id/speed"
                        android:textSize="12sp"
                        android:onClick="onClick"
                        android:gravity="center|bottom"
                        android:paddingBottom="10dp"/>
                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerInParent="true"/>
                </RelativeLayout>
            </TableRow>

            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="0dp"
                android:weightSum="1"
                android:layout_weight="0.5">
                <RelativeLayout
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.33">
                    <Button
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="Time"
                        android:id="@+id/time"
                        android:textSize="12sp"
                        android:onClick="onClick"
                        android:gravity="center|bottom"
                        android:paddingBottom="10dp"/>
                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerInParent="true"/>
                </RelativeLayout>
                <RelativeLayout
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.33">
                    <Button
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="Torque"
                        android:id="@+id/torque"
                        android:textSize="12sp"
                        android:onClick="onClick"
                        android:gravity="center|bottom"
                        android:paddingBottom="10dp"/>
                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerInParent="true"/>
                </RelativeLayout>
                <RelativeLayout
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.33">
                    <Button
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="Volume"
                        android:id="@+id/volume"
                        android:textSize="12sp"
                        android:onClick="onClick"
                        android:gravity="center|bottom"
                        android:paddingBottom="10dp"/>
                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerInParent="true"/>
                </RelativeLayout>
            </TableRow>
        </TableLayout>

    </RelativeLayout>

Below is the activity_main.xml file:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    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:fitsSystemWindows="true"
    tools:context="sg.unitconverter.MainActivity">

    <android.support.design.widget.AppBarLayout
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_main"/>

</android.support.design.widget.CoordinatorLayout>

The first row having AREA, LENGTH and WEIGHT is different than the rest of the rows. I want all the rows to be equal in size. Can anyone please help?

Below is the manifest XML file:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="sg.unitconverter">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name="sg.unitconverter.MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="sg.unitconverter.StandardCal"
            android:label="@string/title_activity_standard_cal"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="sg.unitconverter.ScientificCal"
            android:label="@string/title_activity_scientific_cal"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="sg.unitconverter.UnitConverter"
            android:label="@string/title_activity_unit_coverter"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="sg.unitconverter.UnitArea"
            android:label="@string/title_activity_unit_area"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="sg.unitconverter.UnitLength"
            android:label="@string/title_activity_unit_length"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="sg.unitconverter.UnitWeight"
            android:label="@string/title_activity_unit_weight"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="sg.unitconverter.UnitTemperature"
            android:label="@string/title_activity_unit_temperature"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="sg.unitconverter.UnitCooking"
            android:label="@string/title_activity_unit_temperature"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="sg.unitconverter.UnitCurrency"
            android:label="@string/title_activity_unit_area"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="sg.unitconverter.UnitEnergy"
            android:label="@string/title_activity_unit_length"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="sg.unitconverter.UnitFuel"
            android:label="@string/title_activity_unit_weight"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="sg.unitconverter.UnitPower"
            android:label="@string/title_activity_unit_temperature"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="sg.unitconverter.UnitPressure"
            android:label="@string/title_activity_unit_temperature"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="sg.unitconverter.UnitSpeed"
            android:label="@string/title_activity_unit_area"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="sg.unitconverter.UnitStorage"
            android:label="@string/title_activity_unit_length"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="sg.unitconverter.UnitTime"
            android:label="@string/title_activity_unit_weight"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="sg.unitconverter.UnitTorque"
            android:label="@string/title_activity_unit_temperature"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="sg.unitconverter.UnitVolume"
            android:label="@string/title_activity_unit_temperature"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="sg.unitconverter.History"
            android:label="@string/title_activity_history"
            android:theme="@style/AppTheme.NoActionBar"></activity>
    </application>

</manifest>

Add padding to the top of the content equal to the height of the actionBar to offset it:

<RelativeLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingTop="?attr/actionBarSize"
        xmlns:android="http://schemas.android.com/apk/res/android">
...

Also replace all fill_parent with match_parent as it is deprecated and both do the same things.

I think the toolbar is overlapping your content layout. Just add the app:layout_behavior="@string/appbar_scrolling_view_behavior" to the root RelativeLayout , don't use padding.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM