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

Android 按钮边距随按钮文本内容而变化,android,xml,button,layout,Android,Xml,Button,Layout,让我们从有趣的部分开始,这里是麻烦的图形。从横向上看,一切都是美好的 中间的按钮,我想和其他三个对齐。以下是基本内容: 总的来说,这是一个相对的过程 在这个relativelayout中,它是一个水平线性布局,包含三个按钮 中间按钮的“下沉”与它是一个双行文本有100%的相关性,如果我将其更改为一行,它将正确对齐 按钮的指定高度与下沉无关,即使在其当前大小(从当前70到170)的两倍以上,也会显示完全相同的行为(以及行为大小) “自定义按钮”背景没有任何效果,如果我将它们全部更改为无背景、看起

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

中间的按钮,我想和其他三个对齐。以下是基本内容:

  • 总的来说,这是一个相对的过程
  • 在这个relativelayout中,它是一个水平线性布局,包含三个按钮
  • 中间按钮的“下沉”与它是一个双行文本有100%的相关性,如果我将其更改为一行,它将正确对齐
  • 按钮的指定高度与下沉无关,即使在其当前大小(从当前70到170)的两倍以上,也会显示完全相同的行为(以及行为大小)
  • “自定义按钮”背景没有任何效果,如果我将它们全部更改为无背景、看起来像股票的按钮,则会出现相同的定位
  • 以下是XML(仅限于relativelayout中的线性布局):

    
    

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

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

    因此,这并不是因为它的内页边距有问题,无法将文本挤压到上边框上对齐的是文本,而不是按钮图形。一直以来,我都认为有一些神秘的地方:我没有取消填充,但有三行按钮文本,填充大约1dp是非常高兴的

    解决方案是添加

    android:layout_gravity="center_vertical"
    
    按那个按钮。为了保持一致性,我也将其添加到了其余的部分中

    教训:当你认为事情不一致时,也许事实上是这样,但也许你看错了

    android:layout_gravity="center_vertical"