【问题标题】:Centering of text inside a button in androidandroid中按钮内的文本居中
【发布时间】:2014-05-03 22:42:03
【问题描述】:

我查看了stackoverflow,发现一些人在按钮内居中文本时遇到问题。我已经尝试过重力、中心、textAlignment 等。但到目前为止没有任何效果。有人对我如何解决这个问题有任何想法吗?谢谢

这个按钮基本上是一个带有减号或 - 符号的按钮,但它不会将 - 符号放在中间。我也用 + 试过这个,但没有运气。任何帮助表示赞赏。

我可以让按钮使文本居中,但我必须使用 wrap_content 作为宽度和高度。然而,我不想要一个那么大的按钮。希望 40dp x 40dp

<Button
            android:id="@+id/button_minusMin"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_below="@+id/edit_minute"
            android:layout_marginLeft="55dp"
            android:background="@drawable/button1"
            android:text="@string/button_minusMin"
            android:textAlignment="gravity"
            android:textColor="#FFFFFF"
            android:textSize="30sp"
            android:textStyle="bold" />

这是我的 button1 xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item><layer-list>
        <item android:right="5dp" android:top="5dp"><shape>
                <corners android:radius="3dp" />

                <solid android:color="#000000" />
            </shape></item>
        <item android:bottom="2dp" android:left="2dp"><shape>
                <gradient android:angle="270" android:endColor="#000000" android:startColor="#F06F14" />

                <stroke android:width="1dp" android:color="#BABABA" />

                <corners android:radius="4dp" />

                <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
            </shape></item>
    </layer-list></item>

我已经尝试了以下方法,但想要有阴影,这就是我使用 button1.xml 的原因 我的 button1.xml 中有什么东西会扔掉吗?

<Button
            android:id="@+id/button_minusSets"
            android:layout_width="35dp"
            android:layout_height="40dp"
            android:layout_below="@+id/edit_sets"
            android:layout_marginLeft="55dp"
            android:background="#F06F14"
            android:text="@string/button_minusSets"
            android:textColor="#FFFFFF"
            android:textSize="30sp"
            android:textStyle="bold" />

【问题讨论】:

  • 你不能在按钮或 TextView 中居中符号

标签: android xml


【解决方案1】:

您是否尝试将android:gravity="center" 添加到您的按钮?

编辑 1:添加按钮 XML

<Button
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:background="@drawable/button_drawable"
    android:gravity="center"
    android:text="+" >
</Button>

【讨论】:

  • 是的,但没有任何影响
  • 我使用您刚刚添加的按钮 XML 提供的相同选择器进行了测试。工作正常。
  • 尝试从按钮布局中删除文本大小。
  • 很好!!这有效......任何想法为什么?或者我怎样才能增加 - 标志的大小?我想我可以导入图像副文本..
  • 可能是因为您提供的文字大小不适合 35dp X 40dp 尺寸。
【解决方案2】:

快速的答案(也许没有告诉你为什么你的代码不起作用,但仍然可以工作)是将此按钮与文本视图放在某种布局中(最好是FrameLayoutRelativeLayout)。

例如这样(请自己插入您的 id):

<FrameLayout
    android:layout_width="40dp"
    android:layout_height="40dp" >

    <Button
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/button1" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_horizontal"
        android:text="@string/button_minusSets"
        android:textColor="#FFFFFF"
        android:textSize="30sp"
        android:textStyle="bold" />
</FrameLayout>

这将为您提供所需的居中文本。

如果我想出解决你代码问题的方法,我会用 cmets 写出来。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-20
    • 2020-02-16
    • 2020-05-22
    • 2012-01-02
    • 1970-01-01
    • 2012-07-28
    • 1970-01-01
    • 2011-04-19
    相关资源
    最近更新 更多