将文本垂直放置在按钮内 - 减少边距?

Posted

技术标签:

【中文标题】将文本垂直放置在按钮内 - 减少边距?【英文标题】:Position text inside button vertically - reduce margin? 【发布时间】:2019-07-10 08:12:58 【问题描述】:

我在格式化按钮内的文本时遇到问题。我已经尝试减少边距和填充并使用重力,但我似乎仍然在按钮内的文本周围有某种边距。 我目前已将文本置于顶部,但如您所见,它保持在非常低的位置,甚至超出了按钮。

这是我使用的代码:

<Button
android:id="@+id/counterValue"
android:layout_
android:layout_
android:layout_marginStart="24dp"
android:layout_marginLeft="0dp"
android:layout_marginRight="0dp"
android:layout_marginTop="0dp"
android:onClick="countIN"
android:paddingTop="0dp"
android:paddingBottom="0dp"
android:minHeight="0dp"
android:minWidth="0dp"
android:gravity="top|center"
android:text="0"
android:textSize="140dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

As you see, the big 0 is at the very bottom of the box. I would like it to be right in the middle and with very small margins.

关于我的代码中缺少什么的任何想法?

【问题讨论】:

不要使用“dp”作为文本大小,而是使用“sp”。可以贴一张有问题的图片。这样人们可以更快地回复您。 添加您的问题的屏幕截图将非常有助于我们为您的问题提供适当的答案 是的,抱歉 - 我现在添加了图片。 【参考方案1】:

您只需将 Button 的高度更改为wrap_content

android:layout_

您不能为Button 和固定textSize 设置固定高度,并期望文本正确居中。编辑 设置此属性:

android:includeFontPadding = "false"

【讨论】:

如果我使用 wrap_content,那么按钮会变得比我需要的大。 那你需要改变它的textSize。 正如我所写 - 减小文本大小不是我需要的。我真的需要按钮上的巨大数字。知道如何减少它上面的边距吗? 谢谢 - 这实际上很有帮助。我的文字几乎到了中间。还是有点低,但好多了。 此属性会移除任何字体填充,因此文本清晰。如果上方或下方有任何空间,则必须调整按钮的高度或文本的大小。【参考方案2】:

我建议您将文本大小从“dp”更改为“sp”,如 140dp。如果你想保持这个尺寸,你可能想改变你的按钮的尺寸 问题所在的行是:

android:textSize="140dp"

【讨论】:

谢谢,我将“dp”更改为“sp”,但没有任何变化。另外 - 我需要非常大的文本,所以 140sp 是我真正想要使用的。但是,我不能使按钮的大小更大。理论上有足够的空间 - 按钮是 144dp,文本是 140。是的,如果居中,边距会非常小,但这正是我需要的。 很高兴我能帮上忙。随意标记我的答案,以便其他有相同问题的人有机会解决它

以上是关于将文本垂直放置在按钮内 - 减少边距?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 UIScrollview 内的按钮设置边距?

边距:自动;不垂直居中 div [重复]

在 IOS 堆栈视图中的元素之间放置边距

如何根据可见性自动调整两个垂直按钮之间的边距?

如何设置按钮的内部文本边距

如何从 ListView 的右边缘设置垂直滚动条的边距?