Кнопки Android без полей - PullRequest
26 голосов
/ 14 марта 2012

Я ненавижу быть третьим человеком, который спрашивает об этом, но предыдущие два запроса , похоже, не ответили полностью.В руководстве по дизайну Android подробно описаны кнопки без полей , но не о том, как их сделать.В одном из предыдущих ответов было предложено использовать:

style="@android:style/Widget.Holo.Button.Borderless"

Это хорошо работает для темы Holo, но я также использую много Holo.Light и

style="@android:style/Widget.Holo.Light.Button.Borderless"

Кажется, не существует.Есть ли способ применить стиль для таких кнопок без полей в Holo.Light или, что еще лучше, просто применить тег без полей, не указывая, к какой теме он принадлежит, чтобы приложение могло выбрать правильный стиль во время выполнения?

Holo.ButtonBar, кажется, соответствует требованиям для того, что я ищу, за исключением того, что он не предоставляет никакой обратной связи с пользователем, что он был нажат.

Кроме того, есть ли место в документации, где перечислены такие стили, которые могут быть примененыи описание их?Независимо от того, сколько я гуглю и ищу в документах, я ничего не могу найти.Если я щелкну правой кнопкой мыши и отредактирую стиль, это будет просто неописательный список.

Любая помощь будет признательна.

Редактировать: Получил идеальный ответ от javram, и я хотел добавить немного XMLДля тех, кто заинтересован в добавлении частичных границ, Google принял.

Горизонтальный разделитель Fora, он отлично работает

<View
    android:id="@+id/horizontal_divider_login"
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp"
    android:background="@color/holo_blue" />

и вертикальный:

<View
     android:id="@+id/vertical_divider"
     android:layout_width="1dip"
     android:layout_height="match_parent"
     android:layout_marginBottom="8dp"
     android:layout_marginTop="8dp"
     android:background="@color/holo_blue" />

Ответы [ 5 ]

43 голосов
/ 18 августа 2012

Просто добавьте следующий атрибут стиля в тег Button:

style="?android:attr/borderlessButtonStyle"

источник: http://developer.android.com/guide/topics/ui/controls/button.html#Borderless

27 голосов
/ 31 марта 2012

Проверьте мой ответ здесь .В двух словах, правильное решение заключается в следующем:

android:background="?android:attr/selectableItemBackground"
10 голосов
/ 03 июня 2016

С риском избить мертвую лошадь, вот еще один (возможно, лучший) вариант.AppCompat v7 определяет стиль кнопок без полей.Если вы уже используете библиотеку AppCompat, просто сделайте следующее:

<Button android:text="@string/borderlessButtonText" style="@style/Widget.AppCompat.Button.Borderless" />

8 голосов
/ 14 марта 2012

Этот код удалит весь фон для кнопки:

android:background="@android:color/transparent"
1 голос
/ 07 июня 2013

Просто если кто-то ищет легкое решение, чтобы получить кнопку без полей для API, которые не поддерживают тему Holo (как я это делал в течение длительного времени), я публикую свое решение ниже:

<View 
    android:layout_height="1dp"
    android:layout_width="match_parent"
    android:background="#505154"
    android:layout_marginLeft="10dp" android:layout_marginRight="10dp"/>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <Button
        android:id="@+id/btn_Reply"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:background="@android:color/transparent"
        android:paddingBottom="15dp" android:paddingTop="15dp"
        android:textColor="#5c5966"
        android:text="@string/btnReplyText"/>

    <View 
        android:layout_height="fill_parent"
        android:layout_width="1dp"
        android:background="#505154" 
        android:layout_marginBottom="7dp" android:layout_marginTop="7dp"/>

    <Button
        android:id="@+id/btn_Delete"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:paddingBottom="15dp" android:paddingTop="15dp"
        android:textColor="#5c5966"
        android:background="@android:color/transparent"
        android:text="@string/btnDeleteText" />

    <View 
        android:layout_height="fill_parent"
        android:layout_width="1dp"
        android:background="#505154"
        android:text="@string/btnReplyText"
        android:layout_marginBottom="7dp" android:layout_marginTop="7dp" />

    <Button
        android:id="@+id/btn_Exit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_gravity="center"
        android:text="@string/btnExitText"
        android:paddingBottom="15dp" android:paddingTop="15dp"
        android:textColor="#5c5966"
        android:background="@android:color/transparent"/>
</LinearLayout>

Все, что вам нужно сделать, это изменить цвета и текст в соответствии с вашим собственным фоном.Всего наилучшего!

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