按钮边距随按钮文本内容而变化

Posted

技术标签:

【中文标题】按钮边距随按钮文本内容而变化【英文标题】:Button Margin Changes with Button text content 【发布时间】:2013-08-13 20:02:06 【问题描述】:

让我们从有趣的部分开始,这是麻烦的图形。横向来看,一切都是美好的。

中间的按钮,我想和其他三个对齐。以下是基础知识:

    总的来说,这是一个相对布局 在这个 relativelayout 中,它是一个水平线性布局,包含三个按钮 中间按钮的“下沉”与它是双行文本 100% 相关,如果我将其更改为单行,它会正确对齐 按钮的指定高度与下沉无关,即使是它们当前大小的两倍多(从当前 70 到 170),也会显示完全相同的行为(和行为的大小) “custom_button”背景无效,如果我将它们全部更改为无背景、股票查找按钮,则会出现相同的定位

这里是 XML(只是相对布局中的线性布局):

<LinearLayout 
android:id="@+id/wideButtons"
android:layout_below="@+id/buttonClockFinish"
android:layout_
android:layout_
android:layout_marginTop="10dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:orientation="horizontal">

    <Button
    android:id="@+id/buttonLog"
    android:layout_weight="1"
    android:layout_
    android:padding="0dp"
    android:layout_marginRight="3dp"
    android:layout_
    android:background="@drawable/custom_button"
    android:text="View Log" />

    <Button
    android:id="@+id/buttonLocation"
    android:layout_weight="1"
    android:layout_
    android:padding="0dp"
    android:layout_marginLeft="3dp"
    android:layout_marginRight="3dp"
    android:layout_
    android:background="@drawable/custom_button"
    android:text="Location\nD1-RS" />

    <Button
    android:id="@+id/buttonHelp"
    android:layout_weight="1"
    android:layout_
    android:padding="0dp"
    android:layout_marginLeft="3dp"
    android:layout_
    android:background="@drawable/custom_button"
    android:text="Help" />

</LinearLayout>

那么到底为什么它不对齐?

【问题讨论】:

【参考方案1】:

我正要发布这个问题,并做了最后一个实验。我在按钮上添加了第三行文本。这进一步推低了它。但我意识到它的共同点是中间按钮顶行的文本与它两侧的两个按钮的文本完全对齐。

所以并不是说它有内部边距问题,无法将文本挤压到顶部边框上。 对齐是 TEXT,而不是按钮图形。 一直以来,我一直认为有一些神秘:填充,我没有清空,但是三行按钮文本很高兴只有大约 1dp 左右的填充。

解决方案是添加

android:layout_gravity="center_vertical"

到那个按钮。我也将它添加到其余部分,只是为了保持一致。

经验教训:当您认为事情不一致时,也许它们实际上是一致的,但也许您正在寻找错误的东西。

【讨论】:

以上是关于按钮边距随按钮文本内容而变化的主要内容,如果未能解决你的问题,请参考以下文章

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

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

与边距水平对齐,同时不丢失垂直对齐

UIButton 文本边距/填充

为啥切换按钮周围有奇怪的填充/边距?

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