在Android中的按钮内左对齐文本

Posted

技术标签:

【中文标题】在Android中的按钮内左对齐文本【英文标题】:Left align text inside a button in Android 【发布时间】:2012-07-05 10:55:24 【问题描述】:

我想将按钮的文本向左对齐,我不知道如何做到这一点,请帮助我如何在 xml 文件中做到这一点。我没有找到这个的属性。

【问题讨论】:

请改写你的问题 :) 太不清楚了 告诉人们使用谷歌搜索 A) API 文档中缺少的内容和 B) 不明显和 C) 由谷歌的重叠 API 调用相互干扰引起的问题......没有帮助。 【参考方案1】:

如果您必须支持多种不同的语言,最好使用startend 来定位文本。这种方式对于从右到左 (RTL) 语言仍然有效。

示例:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:layout_
        android:layout_
        android:gravity="start|center_vertical"
        android:text="Button" />

</LinearLayout>

【讨论】:

【参考方案2】:

你可能两个都想要

    android:gravity="left|center_vertical"

然后是一点空间

    android:paddingLeft="5dp"

防止文本靠在按钮的左边缘。

(根据您的按钮艺术调整 padding_left 的数量。)

【讨论】:

你的意思是:android:gravity="left|center_vertical" android:paddingLeft="10dp" 所以我愿意!谢谢,已修复。【参考方案3】:
android:gravity="left|center_vertical"

它会起作用,但现在您可能需要根据您的要求添加一些剩余的填充。

        android:paddingLeft="10dp"

【讨论】:

【参考方案4】:

正如其他人所提到的,"left|center_vertical" 有效,但我发现如果没有明确说明左或右,大多数属性默认为左。

因此,放置以下内容应该足以让您的文本左对齐和垂直居中:

android:gravity="center_vertical"

【讨论】:

【参考方案5】:

也许这会对你有所帮助:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:layout_
        android:layout_
        android:gravity="left|center_vertical"
        android:text="Button" />

</LinearLayout>

【讨论】:

这是我缺少的 |center_vertical 部分,谢谢@M-Mohsin-Naeem 应该考虑使用 android:gravity="start|center_vertical" 而不是 left center_vertical 自动将文本左对齐。我需要我的文本向右对齐,所以center_vertical|right 为我工作。我不知道我可以用管道字符做到这一点,谢谢! 这没有回答原始问题。您正在移动按钮,而不是对齐按钮内的文本标签。【参考方案6】:

您可能需要 android:gravityandroid:layout_gravity 来将文本与“左”对齐。

【讨论】:

【参考方案7】:

这是对我有用的上面的组合,左侧的图标和左对齐的文本与一些填充

<Button
    android:id="@+id/butt_labs"
    android:layout_
    android:layout_
    android:drawableLeft="@drawable/dt_labjob"
    android:paddingLeft="10dip"
    android:gravity="left|center_vertical"
    android:text="@string/l_labs" />

【讨论】:

【参考方案8】:

android:gravity="left"

希望这会有所帮助

【讨论】:

谢谢,但这并不能移动按钮文本的中心,我所做的是 android:paddingRight="dp" 就是这样 我不太明白你的意思,你能解释一下吗? 他的意思很清楚。按钮上的文本应与按钮内的左侧对齐。下次推荐google之前先看问题。 是的,我的代码有什么问题? gravity 是对齐按钮内的文本,layout_gravity 是对齐按钮到父级 @user1497577,把它放在''元素里面。

以上是关于在Android中的按钮内左对齐文本的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android的RowTable中对齐文本和按钮

带有文本和图像的 Android 按钮

JavaFX中GridPane的行居中对齐

在Android中并排对齐三个控件

编辑文本中的文本在android中未垂直对齐

Android 编辑文本动态时滑动到对应item底部和输入框(右边“发送”按钮下边软键盘)顶部对齐