В моем приложении для Android у меня есть этот макет:
<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
class="com.google.android.gms.maps.SupportMapFragment"/>
<Button
android:id="@+id/button_back"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="CloseActivity"
android:padding="0dp"
android:text="@+string/back" />
</LinearLayout>
В превью и на телефоне это выглядит так:
Как вы можете видеть на кнопке в нижней области, там есть некоторые отступы.
Как мне избавиться от этого и позволить кнопке полностью заполнить нижнюю область?
Ответы:
Для меня проблема оказалась minHeight и minWidth на некоторых темах Android.
В элемент Button добавьте:
Или в стиле вашей кнопки:
источник
Button
все еще занимает так много места даже после установки егоandroid:background="@null"
. Тот факт, чтоButton
стиль по умолчанию является ответственным, очень хороший совет.Мое решение было установлено в 0 свойства insetTop и insetBottom.
источник
Это не заполнение, это тень вокруг кнопки на ее фоне. Создайте свой собственный фон, и он исчезнет.
источник
Обходной путь может заключаться в том, чтобы попытаться использовать
-ve
значения для полей, как показано ниже:Это заставит это пространство исчезнуть. Я имею в виду, что вы можете выбрать подходящее
dip
значение, чтобы оно исчезло. Это сработало для меня. Надеюсь, это работает для вас.источник
Для удаления отступов вокруг кнопки переключения нам нужно установить minWidth и minHeight 0dp.
android:minWidth="0dp" android:minHeight="0dp"
установите для вашего нарисованного файла атрибут кнопки, например:
android:button="@drawable/toggle_selector"
Ниже мой
toggle_selecter.xml
файлисточник
Я новичок в Android, но у меня была похожая ситуация. Я сделал то, что предложил @Delyan, а также использовал android: background = "@ null" в файле макета xml.
источник
В наборе XML кнопки
android:includeFontPadding="false"
источник
У меня была такая же проблема, и кажется, что это из-за цвета фона кнопки. Попробуйте изменить цвет фона на другой, например:
и посмотреть, если это работает. Затем вы можете определить стиль, если хотите использовать кнопку.
источник
Снять верхнюю и нижнюю прокладку
Чтобы удалить левый и правый отступ
источник
Это не отступы, а или тень фона или проблема с
minHeight
иminWidth
.Если вы по-прежнему хотите получить приятный волновой эффект, вы можете создать свой собственный стиль кнопок, используя
?attr/selectableItemBackground
:И примените его к кнопке:
источник
Кажется, это не отступы, отступы или минимальная высота / ширина. Установка
android:background="@null"
кнопки теряет свою сенсорную анимацию, но оказывается, что установка фона на что-либо вообще исправляет эту границу.В настоящее время я работаю с:
источник
Дайте вашей кнопке собственный фон: @ drawable / material_btn_blue
источник
Вы также можете сделать это с
layout_width(height)
параметрами.Например, я удалил верхнее и нижнее пространство с
android:layout_height="18dp"
кодом.источник
Стандартная кнопка не должна использоваться на полную ширину, поэтому вы испытываете это.
Задний план
Если вы посмотрите на Material Design - Button Style, то увидите, что кнопка имеет область щелчка высотой 48dp, но по какой-то причине будет отображаться как 36dp высоты.
Это фоновый контур, который вы видите, который не будет охватывать всю область самой кнопки.
Он имеет закругленные углы и некоторые отступы, и предполагается, что он сам по себе кликабелен, оборачивает содержимое и не охватывает всю ширину в нижней части экрана.
Решение
Как уже упоминалось выше, вам нужен другой фон . Не стандартная кнопка, а фон для выбираемого элемента с этим приятным эффектом ряби.
Для этого варианта использования есть
?selectableItemBackground
атрибут темы, который вы можете использовать для фона (особенно в списках).Это добавит стандартную рябь платформы (или некоторый список состояний цвета на <21) и будет использовать ваши текущие цвета темы.
Для вашего использования вы можете просто использовать следующее:
Также нет необходимости добавлять вес макета, если ваш вид является единственным и охватывает весь экран.
Если у вас есть какое-то иное представление о том, как должен выглядеть ваш фон, вы должны сами создать собственный чертеж и управлять там цветом и состоянием.
источник
После нескольких часов копаться несколько ответов я , наконец , нашел решение , которое не использует другой элемент, манипулировать
minHeight
илиminWidth
, или даже оборачиватьButton
вокругRelativeLayout
.Основной вывод здесь - установка переднего плана, а не фона, как предусмотрено во многих ответах. Изменение самого фона на
selectableItemBackground
просто перезапишет любые изменения, сделанные вами в цвете / фоне кнопки, если таковые имеются.Изменение переднего плана дает вам лучшее из обоих миров: избавьтесь от «невидимого» отступа и сохраните дизайн вашей кнопки.
источник
Вы можете использовать стиль без полей в AppCompatButton, как показано ниже. и использовать Android: фон с ним.
Код кнопки
Вывод:
источник