#android #android-layout #button #margin
#Android #android-макет #кнопка #маржа
Вопрос:
Я написал тестовое приложение, чтобы лучше описать мою проблему. Я начал новый проект Android с этим действием:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.jannevers.myapplication.MainActivity">
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
Теперь первая проблема заключается в том, что кнопка на самом деле не заполняет родительский элемент, у нее есть запас (см. Скриншот):
Я могу обойти это, сделав кнопку больше, чем она должна быть.
Но тогда вторая проблема заключается в том, что запас одинаков на большинстве устройств, но не на всех. Например, на Samsung Galaxy S6 Edge запаса почти нет (см. Скриншот):
Это действительно странно, кто-нибудь знает решение?
Комментарии:
1. вы можете попытаться переопределить
android:margin="0"
в своем относительном макете.2. ничего не меняет
3. Макет находится внутри фрагмента или действия?
4. это не поле и не отступ внутри кнопки, вы можете легко воспроизвести проблему, и очевидно, что кнопка соответствует макету, но изображение кнопки не соответствует виду кнопки, некоторые могут сказать, что это из-за встроенной тени кнопки или чего-то еще, — однако вы можете использоватьпользовательский фон 9patch для вашей кнопки, и он будет соответствовать представлению.
5. да, кнопка выполняет макет, запас не совсем правильное слово. Хм, я хотел бы использовать стандартный фон с его нажатыми состояниями, но, возможно, использование пользовательского фона — единственный способ.
Ответ №1:
Используйте style="?android:attr/borderlessButtonStyle"
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
style="?android:attr/borderlessButtonStyle"/>
Комментарии:
1. хм, нет, мне не нужна кнопка без полей. Кнопка должна иметь границы, но не с «запасом»
2. @SJ.Doe это пространство не является запасом. его тень границ. вы можете создать границу кнопки.
3. на самом деле не понимаю, что вы имеете в виду. я знаю, что это не запас, это прозрачная область на заднем плане кнопки. Проблема в том, что на некоторых устройствах он отличается, и это действительно дерьмово, потому что тогда изменяется размер видимой кнопки.
Ответ №2:
Проверьте, если в вашем style.xml существует правило о полях макета, подобное этому:
<item name="android:layout_margin">10dp</item>
Комментарии:
1. нет, это новый проект Android Studio. styles.xml содержит только AppTheme с colorPrimary, colorPrimaryDark, colorAccent