使用双线按钮对齐问题

我试图找出为什么我的应用程序中的两行按钮被移动比其他按钮低几个像素:

错误对话框。错误消息是“错误:没有互联网连接。请检查您的连接设置,然后重试。”错误消息下方有三个按钮:“重试”,“取消”和“网络设置”。网络设置按钮比其他按钮低几个像素。

如果我缩短第三个按钮上的文本直到它适合一行,这不会发生,这告诉我它与换行符有关。 将android:layout_gravity="top"到按钮的布局似乎没有帮助。 可能导致这个问题的任何想法?

编辑:这是布局XML文件:

     

  • 将alpha-transparency仅设置为布局而不是它的子项
  • ImageView不能保持最大的高度和宽度
  • 如何在Textview xml中将每个单词的第一个字母更改为大写
  • 以编程方式添加多个片段
  • 文字不椭圆
  • Android解码器 - >解码返回false,用于位图下载
  • Androidcheckbox样式
  • 如何在屏幕底部设置android TabLayout?
  • 默认情况下,水平LinearLayout对齐其所有子控件的基线。 因此,多行按钮中的第一行文本与其他按钮中的单行文本垂直对齐。

    要禁用此行为,请在LinearLayout上设置android:baselineAligned="false"

    看过你的布局(在设备上),我不确定为什么它表现出这种奇怪的行为。 在调试布局时,我喜欢在Views上添加背景颜色,这样您就可以更清楚地看到它们占用的空间。 如果我们删除所有填充,我们会发现按钮根本不在同一顶线上。 如果我们将android:gravity="center_vertical"应用于包含的LinearLayout我们会看到前两个按钮居中,但最后一个按钮与顶边紧密android:gravity="center_vertical"

    一个解决方案是使用RelativeLayout重写内部容器:

          

    从我的测试中,通过使用RelativeLayout您可以让所有按钮位于相同的顶部边缘。

    我使用以下更改运行您的代码并且工作正常:将水平线性布局中的android:gravity从“center_horizo​​ntal”更改为“center”。

    我已将以下行添加到XML中的第三个按钮,并使其高度为“fill_parent”:

     android:paddingTop="4dp" android:layout_height="fill_parent" 

    对我来说,4dp工作正常,你可以检查你是否需要更多或更少。

    进行这些更改,你的按钮会很好,就像它的伙伴一样:-)

    为所有三个按钮写android:layout_height =“fill_parent”