Android: как сделать так, чтобы между 2 кнопками в горизонтальном линейном расположении не было места - PullRequest
17 голосов
/ 12 ноября 2011

Я только что обнаружил, что не могу удалить пробел между 2 кнопками, даже если я установил layout_marginRight и layout_marginLeft, как показано ниже. Но имеет смысл, если я установлю больше места, например, 10 dp. Любой способ решить это?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:orientation="horizontal" android:padding="0dp"
    android:layout_height="wrap_content" android:gravity="fill_horizontal" android:layout_margin="0dp">
    <Button android:id="@+id/LocationTitleButton"
                    android:layout_width="wrap_content" 
                    android:layout_height="wrap_content"
                    android:layout_marginRight="0dp"
                    android:layout_gravity="center_vertical" 
                    android:layout_weight="1"
                    android:ellipsize="end" 
                    android:gravity="center_vertical"
                    android:scrollHorizontally="true" 
                    android:singleLine="true"
                    android:text="Add location" 
                    android:textStyle="bold" />
                <Button android:textColor="#FF000000" 
                    android:layout_weight="0" 
                    android:id="@+id/AddLocationButton" 
                    android:text="Search" 
                    android:gravity="center_vertical"
                    android:layout_gravity="center_vertical" 
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" 
                    android:layout_marginLeft="0dp" />
</LinearLayout>

Ответы [ 6 ]

44 голосов
/ 12 ноября 2011

Пожалуйста, посмотрите на ответ Брайана .При моем ответе обе кнопки перекрываются.Ответ Брайана показывает реальный размер кнопок.

Старый ответ:

Просто установите android:layout_marginRight первой кнопки на "-8dip" или даже больше.Чем пространство между двумя кнопками станет меньше.

30 голосов
/ 05 июня 2013

Попробуйте изменить цвет кнопки, потому что стандартный интерфейс кнопки, которая является родной для Android, на самом деле меньше ее размера, и он расположен по центру, чтобы она выглядела круто.

Измените фончерным или что-то, и вы увидите реальный размер кнопки.

android:background="#000"
3 голосов
/ 12 ноября 2011

Вы можете переключиться на RelativeLayout.В этом макете нет пробелов.

1 голос
/ 12 ноября 2011

Вам нужно будет установить android:layout_marginRight="0dip", и вам придется удалить заполнение с помощью android:paddingRight="0dip", для другой кнопки это значение должно быть изменено на левые значения. Полагаю, вы забыли, что к каждому элементу Android по умолчанию добавляется отступ. Как правило, это хорошая идея, но если вы хотите удалить ее, это путь.

0 голосов
/ 11 декабря 2014

Используйте "layout_marginLeft" & "layout_marginRigh", чтобы заполнить кнопку фона

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:gravity="bottom"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/imageButton1"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_marginBottom="-5dp"
        android:layout_marginLeft="-3dp"
        android:layout_marginRight="-4dp"
        android:layout_weight="1"
        android:drawableTop="@drawable/create_mail" />

    <Button
        android:id="@+id/bItem"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_marginBottom="-5dp"
        android:layout_marginLeft="-4dp"
        android:layout_marginRight="-4dp"
        android:layout_weight="1"
        android:drawableTop="@drawable/email_receive3"
        android:onClick="OnClick"
        android:text="@string/inbox" />


    <Button
        android:id="@+id/imageButton2"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_marginBottom="-5dp"
        android:layout_marginLeft="-4dp"
        android:layout_marginRight="-3dp"
        android:layout_weight="1"
        android:drawableTop="@drawable/email_trash" />


</LinearLayout>
0 голосов
/ 13 ноября 2011

Я думаю, что вы можете избавиться от места, если вместо этого вы используете TableLayout.И вы можете установить отрицательные значения для поля, если между ними все еще остается пространство по умолчанию.

...