Ответ 1
Посмотрите мой ответ здесь. Вкратце, правильное решение состоит в том, чтобы использовать следующее:
android:background="?android:attr/selectableItemBackground"
Я ненавижу быть третьим человеком, чтобы спросить об этом, но предыдущие два вопросы не имели казалось, ответил на него полностью. В руководстве по дизайну Android подробно описаны кнопки borderless, но не как их сделать. В одном из предыдущих ответов было предложено:
style="@android:style/Widget.Holo.Button.Borderless"
Это хорошо работает для темы Holo, но я также использую много Holo.Light и
style="@android:style/Widget.Holo.Light.Button.Borderless"
Кажется, не существует. Есть ли способ применить стиль для таких безграничных кнопок в Holo.Light или, еще лучше, просто применить тег без рамки, не указав, к какой теме он относится, поэтому приложение может выбрать подходящий стиль во время выполнения?
Holo.ButtonBar, похоже, соответствует счету для того, что я ищу, за исключением того, что он не откликается на обратную связь с пользователем.
Кроме того, есть ли место в документации, в которой перечислены такие стили, которые могут быть применены, и описание их? Независимо от того, насколько я google и поиск в документах, я ничего не могу найти. Если я щелкнул правой кнопкой мыши и отредактировал стиль, просто список без описаний.
Любая помощь будет оценена.
Edit: Получил прекрасный ответ от 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" />
Посмотрите мой ответ здесь. Вкратце, правильное решение состоит в том, чтобы использовать следующее:
android:background="?android:attr/selectableItemBackground"
Просто добавьте следующий атрибут стиля в тэг Button
:
style="?android:attr/borderlessButtonStyle"
источник: http://developer.android.com/guide/topics/ui/controls/button.html#Borderless
Этот код удалит весь фон для кнопки:
android:background="@android:color/transparent"
В опасности избиения мертвой лошади, здесь другой (возможно, лучший) вариант. AppCompat v7 определяет стиль кнопки без полей. Если вы уже используете библиотеку AppCompat, просто переходите к следующему:
<Button android:text="@string/borderlessButtonText" style="@style/Widget.AppCompat.Button.Borderless" />
Просто подходите к любому, кто ищет легкое решение, чтобы получить кнопку без полей для API, которые не поддерживают тему Holo (например, я сделал это в течение длительного времени), Im размещая мое решение ниже:
<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>
Все, что вам нужно сделать, это изменить цвета и текст в соответствии с вашим собственным фоном. Все самое лучшее!