Как избавиться от лишнего разрыва между кнопкой и другими видами? - PullRequest
7 голосов
/ 17 февраля 2010

Когда я создал вид кнопки, Android всегда создает дополнительное пространство между этой кнопкой и другими видами под ней.

В этом примере ниже есть кнопка над второй кнопкой. Вы можете увидеть разрыв между этими двумя кнопками. Как я могу избавиться от этого разрыва? Спасибо.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <Button android:id="@+id/up"
        android:layout_width="fill_parent" android:layout_height="28dip"
        android:textSize="9sp" android:gravity="center" android:text="Hide sth"
        android:layout_marginBottom="0" android:paddingBottom="0" />
    <Button android:id="@+id/down"
        android:layout_width="fill_parent" android:layout_height="28dip"
        android:textSize="9sp" android:gravity="center" android:text="Show sth" />
   </LinearLayout>

Ответы [ 3 ]

6 голосов
/ 17 февраля 2010

Создайте свой собственный фон кнопки из девяти патчей PNG, который устраняет пробел. Вы можете найти существующие фоновые файлы в вашем SDK.

5 голосов
/ 17 февраля 2010

CommonsWare в значительной степени указал вам верное направление, но вот пример макета.Просто замените android: background = "COLOR" на ссылку из 9 патчей png


<code><</code>?xml version="1.0" encoding="utf-8"?>
<code><</code>LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="wrap_content"></p>

<pre><code><Button
    android:id="@+id/btn1"
    android:text="btn1"
    android:padding="0dip"
    android:layout_margin="0dip"
    android:layout_width="fill_parent"
    android:layout_height="40dip"
    android:background="#FFF"
/>

<Button
    android:id="@+id/btn2"
    android:text="btn2"
    android:padding="0dip"
    android:layout_margin="0dip"
    android:layout_width="fill_parent"
    android:layout_height="40dip"
    android:background="#FF0000"
/>

</LinearLayout>

Надеюсь, что поможет!

1 голос
/ 22 июля 2015

Я только разобрался с самым простым способом. Мы должны просто добавить фон к Button s, и это автоматически уменьшит пробелы. Пример уведомления

<Button
    android:id="@+id/button1"
    android:text="Button 1"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:background="#000000"  />

<Button
    android:id="@+id/button2"
    android:text="Button 2"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:background="#000000" />

Очевидно, что мы должны были бы разделить Button с границей. Есть несколько способов для этого.

1. android:layout_marginTop="1dp" с точностью до секунды Button. Небольшой кусочек фона разделит его.

2. Добавить style для Button:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient android:startColor="#FFFFFF" 
         android:endColor="#000000"
         android:angle="270" />
    <corners android:radius="3dp" />
    <stroke android:width="1px" android:color="#FFFFFF" />
</shape>

и установите его с помощью:

android:background="@drawable/your_button_border"

3. Добавить View фоном другого цвета и поместить его между Button с.

<View
    android:layout_width="match_parent"
    android:layout_height="2dp"
    android:background="#AAA" />

Просто выберите наиболее удобный для вас способ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...