android - 将文本保留在 TextView 中,drawableLeft 居中

标签 android textview

在我的应用程序中,我有一个标题栏,它由一个以 fill_parent 作为宽度的 TextView 组成,它具有特定的背景颜色和一些居中的文本。现在我想在标题栏的左侧添加一个drawable,所以我设置了drawableLeft,果然显示了文本和图像。但是这里的问题是文本不再正确居中,例如,当添加可绘制对象时,文本会向右移动一点,如下面的屏幕截图所示:

without drawable
with drawable

我是否可以在不使用其他布局项(例如 LinearLayout)的情况下正确地将文本居中并将可绘制对象放置在上方?

最佳答案

虽然很脆弱,但您可以通过在可绘制对象上设置 negative 填充来避免使用包装布局:

<TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerHorizontal="true"
    android:drawableLeft="@drawable/icon"
    android:drawablePadding="-20sp"
    android:text="blah blah blah" />

您必须将填充调整为可绘制对象的宽度,但您只剩下一个 TextView 而不是额外的 LinearLayout 等。

关于android - 将文本保留在 TextView 中,drawableLeft 居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11261692/

相关文章:

android - 不推荐使用setActionView

android - 如何在 TextView 中通过 unicode 设置表情符号?

android - 获取要在 textView 上显示的 editText 值

java - 如何更改句子中两个特定单词之间的单词颜色

android - 单击提交按钮后在另一个页面中显示表单数据

android - 构建目录中生成了什么和中间文件夹以及为什么缺少输出文件夹

java - 可序列化的简单对象 IOException

java - 如果我也想传递数据,使用 Otto (或简单的回调设计模式)最好的方法是什么?

android - 如何在android中获取两位数的日期和时间?

android - 如何在 Android 中为 ImageSpan 应用背景颜色?