Как растянуть кнопки, чтобы они соответствовали GridView

#android #xml #view

#Android #xml #Вид

Вопрос:

У меня есть активность с тремя GrindViews. Я заполняю эти представления пользовательскими SimpleCursorAdapters. В каждой ячейке есть кнопка, которую мне нужно растянуть в эту ячейку GrindView. А также мне нужно, чтобы между этими GrindViews не было свободного пространства. Я уже пытаюсь установить отступы / поля без эффекта. Вот XML-файлы:

MainView:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">

<GridView android:id="@ id/gridview1" android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:numColumns="5"
    android:gravity="center" />

<GridView android:id="@ id/gridview2" android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:numColumns="5"
    android:gravity="center" />

<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@ id/gridview3" android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:numColumns="4"
    android:gravity="center" />
  

Ячейка:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:padding="1dip"
android:layout_height="fill_parent" android:orientation="horizontal">

<Button xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:padding="1dip"
    android:layout_height="fill_parent" android:id="@ id/textButton" />
  

Скриншот:
Текущее состояние

Спасибо за любую помощь!

Комментарии:

1. Черт возьми, я надеялся узнать о каком-нибудь новом привлекательном GrindView! Я не уверен, что понимаю, что вы хотите сделать. Возможно ли, что решение состоит в том, чтобы просто удалить android: padding =»1dip» из LinearLayout и кнопки вашей ячейки?

2. Возможно, этот скриншот будет лучше ссылки . Я просто хочу растянуть кнопки так, чтобы они покрывали всю оранжевую область. Таким образом, вокруг них почти не будет черного фона. И это произойдет, если я удалю заполнение из кнопки (ячейки) — ссылка

Ответ №1:

Я думаю, вам придется установить собственное изображение для ваших кнопок, а не использовать стандартный системный образ. Если я не ошибаюсь, стандартное изображение MDPI для кнопок имеет встроенную прозрачную рамку в 3 пикселя по горизонтальным сторонам, 1 пиксель по верхней стороне и 4 пикселя по нижней стороне. Итак, даже если бы изображение этой кнопки было полностью расширено, чтобы на 100% заполнить ячейку сетки, оно все равно включало бы эту прозрачную границу и, следовательно, не казалось бы полностью заполняющим ячейку. (Это основано на предположении, что изображение кнопки по умолчанию — btn_default_normal.9.png.)

Вместо использования кнопок взгляните на ImageButton, который позволяет вам установить собственное изображение. Или, чтобы использовать обычную кнопку, вам может потребоваться установить фоновое изображение кнопки с возможностью отображения списка состояний. Взгляните на раздел «Стиль кнопок» для получения дополнительной информации.

Однако теперь я вижу в документах: «Явная установка значения заполнения переопределит соответствующее заполнение, найденное в фоновом режиме». Я вижу, вы упомянули, что пытались установить отступы, но пытались ли вы установить отступы равными нулю?

Комментарии:

1. Вы правы. Установка моего собственного фонового изображения для кнопки помогает, и теперь покрыта вся область. Спасибо за ответ! к вашему сведению — установка нулевого отступа не помогла.