将按钮文本对齐到顶部/中心水平android

时间:2015-08-12 07:54:36

标签: android

enter image description here

嗨,我有一个看起来像img1的按钮。

我需要按钮的文字为img2的顶级/水平中心。

我尝试使用此

<Button
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:id="@+id/equalBtn2"
                android:background="@drawable/blue_payment_button"
                android:textSize="40sp"
                android:textColor="@drawable/text_general"
                android:layout_alignParentTop="true"
                android:layout_toRightOf="@+id/button15"
                android:layout_toEndOf="@+id/button15"
                android:layout_weight="1"
                android:layout_marginLeft="2dp"
                android:layout_marginRight="2dp"
                android:layout_marginBottom="2dp"
                android:text="0"
                android:gravity="center_horizontal|top" />

但我得到的结果为img3。 我不想要文本和按钮头之间的顶部间距。 请帮忙。 提前谢谢。

修改

按钮的父XML

 <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="fill_parent"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="false"
            android:id="@+id/linearLayout5"
            android:layout_above="@+id/linearLayout3"
            android:layout_weight="1" >

            <Button
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text="C"
                android:id="@+id/button13"
                android:layout_alignParentTop="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:background="@drawable/blue_payment_button"
                android:textSize="40sp"
                android:textColor="@drawable/text_general"
                android:layout_weight="1"
                android:layout_margin="2dp" />

            <Button
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text="0"
                android:id="@+id/button14"
                android:background="@drawable/yellow_general_button"
                android:textSize="40sp"
                android:textColor="@drawable/text_general"
                android:layout_alignParentTop="true"
                android:layout_toRightOf="@+id/button13"
                android:layout_toEndOf="@+id/button13"
                android:layout_weight="1"
                android:layout_margin="2dp" />

            <Button
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text="&lt;"
                android:id="@+id/button15"
                android:background="@drawable/blue_payment_button"
                android:textSize="40sp"
                android:textColor="@drawable/text_general"
                android:layout_alignParentTop="true"
                android:layout_toRightOf="@+id/button14"
                android:layout_toEndOf="@+id/button14"
                android:layout_weight="1"
                android:layout_margin="2dp" />

            <Button
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:id="@+id/equalBtn2"
                android:background="@drawable/blue_payment_button"
                android:textSize="40sp"
                android:textColor="@drawable/text_general"
                android:layout_alignParentTop="true"
                android:layout_toRightOf="@+id/button15"
                android:layout_toEndOf="@+id/button15"
                android:layout_weight="1"
                android:layout_marginLeft="2dp"
                android:layout_marginRight="2dp"
                android:layout_marginBottom="2dp"
                android:text="0"
                android:gravity="center_horizontal|top" />
        </LinearLayout>

    </LinearLayout>

4 个答案:

答案 0 :(得分:1)

尝试使用此代码(如徽章样式):编辑!

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">
  <Button
    android:id="@+id/myButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
  <TextView
    android:id="@+id/textOne"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@id/myButton"
    android:layout_centerHorizontal="true"
    android:text="0"/>
</RelativeLayout>

答案 1 :(得分:1)

<Button
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:id="@+id/equalBtn2"
                android:background="@drawable/add_exp_pressed"
                android:textSize="40sp"
                android:textColor="@color/AliceBlue"
                android:layout_alignParentTop="true"
                android:layout_toRightOf="@+id/button15"
                android:layout_toEndOf="@+id/button15"
                android:layout_weight="1"
                android:layout_marginLeft="2dp"
                android:layout_marginRight="2dp"
                android:layout_marginBottom="2dp"
                android:paddingTop="0dp"
                android:text="Hello"
                android:layout_marginTop="-10dp"
                android:gravity="center_horizontal|top" />

试试这个

答案 2 :(得分:0)

最好的方法是设置 minHeight =&#34; 0dp&#34; 并设置 android:paddingBottom =&#34;无论尺寸&#34; 你喜欢。

示例:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:minHeight="0dp"
    android:paddingBottom="16dp"
    android:text="O"
    android:background="@color/yellow" />

minHeight 删除按钮的默认 paddingTop paddingBottom 。因此,您可以手动设置 paddingBottom ,以便文本与按钮顶部对齐。

答案 3 :(得分:0)

在styles.xml中创建自定义样式

<style name="textTop">
    <item name="android:gravity">top|center</item>
</style>

并将此样式设置为按钮

<Button
    style="@style/textTop"
    .... />

并且永远不要将android:gravity设置为按钮,它将消除样式中最上面提到的重力