I'm trying to figure out why a two-line button in my application is being shifted a couple of pixels lower than the other buttons:
This does not happen if I shorten the text on the third button until it fits on one line, which tells me it has something to do with the line break. Adding android:layout_gravity="top"
to the button's layout doesn't seem to help. Any ideas what might be causing this one?
Edit: Here's the layout XML file:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center_horizontal" android:padding="10dip" android:layout_width="wrap_content"> <TextView android:id="@+id/error_text" android:layout_height="wrap_content" android:layout_marginBottom="5dip" android:text="Place holder" android:layout_width="wrap_content" android:textSize="17dip"/> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center_horizontal" android:padding="10dip" android:layout_width="wrap_content"> <Button android:id="@+id/ok_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/ok" android:textColor="@color/black" android:textStyle="bold"/> <Button android:id="@+id/cancel_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8dip" android:text="@string/cancel_login" android:textColor="@color/black" android:textStyle="bold" android:visibility="gone"/> <Button android:id="@+id/third_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8dip" android:textColor="@color/black" android:textStyle="bold" android:visibility="gone"/> </LinearLayout> </LinearLayout>
A horizontal LinearLayout
aligns the baselines of all its child controls by default. So the first line of text in your multi-line button is vertically aligned with the single line of text in the other buttons.
To disable this behaviour, set android:baselineAligned="false"
on the LinearLayout
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With