简体   繁体   中英

How can I center buttons in a nested relativeLayout?

here is a bit of XML. I can't figure out how to center the three lower settings buttons. The settings button in the first relativeLayout centers fine, but the others do not =[ I've been messing around with Sorry for the sloppy xml, have to go in and clean that up!

I've been attempting to correct it with:

android:layout_gravity="center"

and

android:gravity="center"

with no luck.

Here's an example of what the code looks like when it runs: http://i62.tinypic.com/2eai9g3.png

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/body"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"

    tools:context=".RelativeLayoutAndroidExample" >

         <RelativeLayout 
            android:id="@+id/mountLayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">


                <Button
                    android:id="@+id/feedButton"
                    android:layout_width="@dimen/button1_width"
                    android:layout_height="@dimen/button1_height"
                    android:layout_alignLeft="@+id/mountProgressBar"
                    android:layout_centerVertical="true"
                    android:ellipsize="end"
                    android:includeFontPadding="false"
                    android:maxLines="1"
                    android:onClick="onFeedButtonClick"
                    android:text="@string/feedMountButton"
                    android:textSize="@dimen/h3_size" />

                <Button
                    android:id="@+id/resetButton"
                    android:layout_width="@dimen/button1_width"
                    android:layout_height="@dimen/button1_height"
                    android:layout_alignRight="@+id/mountProgressBar"
                    android:layout_centerVertical="true"
                    android:onClick="onResetButtonClick"
                    android:text="@string/resetMountTimerButton"
                    android:textSize="@dimen/h3_size" />

                <ImageButton
                    android:id="@+id/mountSettingsButton"
                    android:layout_width="@dimen/mountSettingsButtonWidth"
                    android:layout_height="@dimen/button1_height"
                    android:layout_centerHorizontal="true"
                    android:layout_centerVertical="true"
                  android:contentDescription="@string/mountSettingsButtonText"
                    android:onClick="onMountSettingsButtonClick"
                    android:scaleType="fitCenter"
                    android:src="@drawable/ic_action_settings" />

                <ProgressBar
                    android:id="@+id/mountProgressBar"
                    style="@android:style/Widget.ProgressBar.Horizontal"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="@dimen/margin_left_20"
                    android:layout_marginRight="@dimen/margin_right_20"
                    android:layout_marginTop="50dp"
                    android:max="72000000"
                    android:minHeight="@dimen/mount_progress_bar_min_height"
                    android:progress="0" />

                <TextView
                    android:id="@+id/mount_countdown"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignBottom="@+id/mountProgressBar"
                    android:layout_alignTop="@+id/mountProgressBar"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="@dimen/countdown_margin_top"
                    android:gravity="center"
                    android:text="@string/title_mount_countdown"
                    android:textAppearance="?android:attr/textAppearanceLarge"
                    android:textColor="?android:attr/textColorPrimaryInverse"
                    android:textSize="@dimen/h3_size"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/feedAtTextView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentTop="true"
                    android:text="@string/lastFedPlaceholder"
                    android:textSize="@dimen/feedAt_lastFed_text_size" />

                <TextView
                    android:id="@+id/lastFedTextView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentRight="true"
                    android:layout_alignParentTop="true"
                    android:text="@string/feedAtPlaceholder"
                    android:textSize="@dimen/feedAt_lastFed_text_size" />

        </RelativeLayout>

         <RelativeLayout
             android:id="@+id/layoutSpacer"
             android:layout_width="match_parent"
             android:layout_height="@dimen/spacer_height"
             android:gravity="center" >
             </RelativeLayout>

         <RelativeLayout
            android:id="@+id/bsLayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center" >

                <Button
                    android:id="@+id/bsButton"
                    android:layout_width="@dimen/button1_width"
                    android:layout_height="@dimen/button1_height"
                    android:layout_alignLeft="@+id/bsProgressBar"
                    android:layout_centerVertical="true"
                    android:ellipsize="end"
                    android:includeFontPadding="false"
                    android:maxLines="1"
                    android:onClick="onFeedButtonClick"
                    android:text="@string/bs"
                    android:textSize="@dimen/h3_size" />

                <Button
                    android:id="@+id/bsResetButton"
                    android:layout_width="@dimen/button1_width"
                    android:layout_height="@dimen/button1_height"
                    android:layout_alignRight="@+id/bsProgressBar"
                    android:layout_centerVertical="true"
                    android:onClick="onResetButtonClick"
                    android:text="@string/resetMountTimerButton"
                    android:textSize="@dimen/h3_size" />

                <ImageButton
                    android:id="@+id/bsSettingsButton"
                    android:layout_width="@dimen/mountSettingsButtonWidth"
                    android:layout_height="@dimen/button1_height"
                    android:layout_centerHorizontal="true"
                    android:layout_centerVertical="true"
                    android:contentDescription="@string/mountSettingsButtonText"
                    android:onClick="onMountSettingsButtonClick"
                    android:scaleType="fitCenter"
                    android:src="@drawable/ic_action_settings" />

                <ProgressBar
                    android:id="@+id/bsProgressBar"
                    style="@android:style/Widget.ProgressBar.Horizontal"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="@dimen/margin_left_20"
                    android:layout_marginRight="@dimen/margin_right_20"
                    android:layout_marginTop="50dp"
                    android:max="72000000"
                    android:minHeight="@dimen/mount_progress_bar_min_height"
                    android:progress="0" />

                <TextView
                    android:id="@+id/bs_countdown"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignBottom="@+id/bsProgressBar"
                    android:layout_alignTop="@+id/bsProgressBar"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="@dimen/countdown_margin_top"
                    android:gravity="center"
                    android:text="@string/bs_countdown"
                    android:textAppearance="?android:attr/textAppearanceLarge"
                    android:textColor="?android:attr/textColorPrimaryInverse"
                    android:textSize="@dimen/h3_size"
                    android:textStyle="bold" />

                </RelativeLayout>

    <RelativeLayout 
            android:id="@+id/wwLayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center">

                <Button
                    android:id="@+id/wwButton"
                    android:layout_width="@dimen/button1_width"
                    android:layout_height="@dimen/button1_height"
                    android:layout_alignLeft="@+id/wwProgressBar"
                    android:layout_centerVertical="true"
                    android:ellipsize="end"
                    android:includeFontPadding="false"
                    android:maxLines="1"
                    android:onClick="onFeedButtonClick"
                    android:text="@string/ww"
                    android:textSize="@dimen/h3_size" />

                <Button
                    android:id="@+id/wwResetButton"
                    android:layout_width="@dimen/button1_width"
                    android:layout_height="@dimen/button1_height"
                    android:layout_alignRight="@+id/wwProgressBar"
                    android:layout_centerVertical="true"
                    android:onClick="onResetButtonClick"
                    android:text="@string/resetMountTimerButton"
                    android:textSize="@dimen/h3_size" />

                <ImageButton
                    android:id="@+id/wwSettingsButton"
                    android:layout_width="@dimen/mountSettingsButtonWidth"
                    android:layout_height="@dimen/button1_height"
                    android:layout_centerHorizontal="true"
                    android:layout_centerVertical="true"
                    android:contentDescription="@string/ww_countdown"
                    android:onClick="onMountSettingsButtonClick"
                    android:scaleType="fitCenter"
                    android:src="@drawable/ic_action_settings" />

                <ProgressBar
                    android:id="@+id/wwProgressBar"
                    style="@android:style/Widget.ProgressBar.Horizontal"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="@dimen/margin_left_20"
                    android:layout_marginRight="@dimen/margin_right_20"
                    android:layout_marginTop="50dp"
                    android:max="72000000"
                    android:minHeight="@dimen/mount_progress_bar_min_height"
                    android:progress="0" />

                <TextView
                    android:id="@+id/ww_countdown"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignBottom="@+id/wwProgressBar"
                    android:layout_alignTop="@+id/wwProgressBar"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="@dimen/countdown_margin_top"
                    android:gravity="center"
                    android:text="@string/ww_countdown"
                    android:textAppearance="?android:attr/textAppearanceLarge"
                    android:textColor="?android:attr/textColorPrimaryInverse"
                    android:textSize="@dimen/h3_size"
                    android:textStyle="bold" />
                </RelativeLayout>

         <!--  CL  --><RelativeLayout
                android:id="@+id/clLayout"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center" >

                <Button
                    android:id="@+id/clButton"
                    android:layout_width="@dimen/button1_width"
                    android:layout_height="@dimen/button1_height"
                    android:layout_alignLeft="@+id/clProgressBar"
                    android:layout_centerVertical="true"
                    android:ellipsize="end"
                    android:includeFontPadding="false"
                    android:maxLines="1"
                    android:onClick="onFeedButtonClick"
                    android:text="@string/cl"
                    android:textSize="@dimen/h3_size" />

                <Button
                    android:id="@+id/clResetButton"
                    android:layout_width="@dimen/button1_width"
                    android:layout_height="@dimen/button1_height"
                    android:layout_alignRight="@+id/clProgressBar"
                    android:layout_centerVertical="true"
                    android:onClick="onResetButtonClick"
                    android:text="@string/resetMountTimerButton"
                    android:textSize="@dimen/h3_size" />

                <ImageButton
                    android:id="@+id/clSettingsButton"
                    android:layout_width="@dimen/mountSettingsButtonWidth"
                    android:layout_height="@dimen/button1_height"
                    android:layout_centerHorizontal="true"
                    android:layout_centerVertical="true"
                    android:contentDescription="@string/cl_countdown"
                    android:onClick="onMountSettingsButtonClick"
                    android:scaleType="fitCenter"
                    android:src="@drawable/ic_action_settings" />

                <ProgressBar
                    android:id="@+id/clProgressBar"
                    style="@android:style/Widget.ProgressBar.Horizontal"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="@dimen/margin_left_20"
                    android:layout_marginRight="@dimen/margin_right_20"
                    android:layout_marginTop="50dp"
                    android:max="72000000"
                    android:minHeight="@dimen/mount_progress_bar_min_height"
                    android:progress="0" />

                <TextView
                    android:id="@+id/cl_countdown"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignBottom="@+id/clProgressBar"
                    android:layout_alignTop="@+id/clProgressBar"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="@dimen/countdown_margin_top"
                    android:gravity="center"
                    android:text="@string/cl_countdown"
                    android:textAppearance="?android:attr/textAppearanceLarge"
                    android:textColor="?android:attr/textColorPrimaryInverse"
                    android:textSize="@dimen/h3_size"
                    android:textStyle="bold" />
                </RelativeLayout>


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

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

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

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

</LinearLayout>

您应该使用android:layout_centerInParent="true"将其与其父项对齐。

I would use several LinearLayouts with the orientation set the horizontal. Then center and use margins or padding to achieve the look you want.

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