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

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

【问题讨论】:

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

标签: java android xml


【解决方案1】:

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

示例:

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

    <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        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_width="fill_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >
        
            <Button
                android:id="@+id/button1"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                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_width="match_parent"
              android:layout_height="wrap_content"
              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,把它放在''元素里面。
            猜你喜欢
            • 2017-11-04
            • 2014-12-27
            • 1970-01-01
            • 1970-01-01
            • 2012-11-19
            • 2021-10-23
            • 1970-01-01
            • 2017-04-07
            • 2021-01-03
            相关资源
            最近更新 更多