简体   繁体   English

如何在嵌套的relativeLayout中将按钮居中?

[英]How can I center buttons in a nested relativeLayout?

here is a bit of XML. 这是一些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! 第一个relativeLayout中的设置按钮居中,但其他按钮则不= [我一直在对不起,对于松散的xml,必须进入并进行清理!

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 这是代码运行时的示例: 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. 我将使用几个LinearLayouts,将方向设置为水平。 Then center and use margins or padding to achieve the look you want. 然后居中并使用边距或填充来获得所需的外观。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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