Отобразить проблему в GridView (инфлятор макета), имеющую кнопку внизу экрана? - PullRequest
0 голосов
/ 09 июня 2011

Я использую gridview с инфлятором макета для отображения значка с текстом с той разницей, что мне нужно предоставить кнопку внизу экрана. Мой файл макета выглядит так:

<?xml version="1.0" encoding="utf-8"?>
  <merge xmlns:android="http://schemas.android.com/apk/res/android">
 <GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/sdcard" android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp" android:numColumns="3"
    android:stretchMode="columnWidth" android:gravity="center"  android:background="#ffffff"/>
 <RelativeLayout android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Button android:text="submit" android:id="@+id/button"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" android:paddingTop="5dp">
    </Button>

</RelativeLayout>
 </merge>

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

enter image description here

Ответы [ 3 ]

5 голосов
/ 09 июня 2011

Попробуйте этот новый код, я обновил его и также проверил .........

<?xml version="1.0" encoding="utf-8"?>
  <merge xmlns:android="http://schemas.android.com/apk/res/android">
    <RelativeLayout android:id="@+id/rl1" android:layout_width="wrap_content" android:layout_height="wrap_content">
        <GridView xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/sdcard" android:layout_width="fill_parent"
            android:layout_height="fill_parent" android:verticalSpacing="10dp"
            android:horizontalSpacing="10dp" android:numColumns="3"
            android:stretchMode="columnWidth" android:gravity="center"  android:background="#ffffff" android:layout_above="@+id/button"/>
        <Button android:layout_width="fill_parent" android:id="@+id/button" android:paddingTop="5dp" android:layout_height="wrap_content" android:text="submit" android:layout_alignParentBottom="true"></Button>
    </RelativeLayout>
 </merge>
1 голос
/ 09 июня 2011

Попробуйте включить и ваш вид сетки, и относительный вид в другой RelativeView

<?xml version="1.0" encoding="utf-8"?>   
<merge  xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeView xmlns:android="http://schemas.android.com/apk/res/android"            android:id="@+id/outer_container" >   <GridView          android:id="@+id/sdcard" android:layout_width="fill_parent"     android:layout_height="fill_parent" android:verticalSpacing="10dp"     android:horizontalSpacing="10dp" android:numColumns="3"     android:stretchMode="columnWidth" android:gravity="center"  android:background="#ffffff"/>  <RelativeLayout android:layout_width="match_parent"     android:layout_height="match_parent" android:layout_alignBelow="id/sdcard">  <Button android:text="submit" android:id="@+id/button"     android:layout_width="fill_parent" android:layout_height="wrap_content"             android:layout_alignParentBottom="true" android:paddingTop="5dp">         </Button>  
</RelativeLayout>
</RelativeLayout> 
</merge>

ИЛИ вы можете просто поместить GridView и вашу кнопку в один RelativeView

0 голосов
/ 01 декабря 2016

Использовать ConstraintLayout Как это

<GridView
    android:id="@+id/grid_view"
    android:padding="0dp"
    android:columnWidth="90dp"
    android:gravity="center"
    android:horizontalSpacing="10dp"
    android:numColumns="2"
    android:stretchMode="columnWidth"
    android:verticalSpacing="50dp"
    android:layout_marginBottom="1dp"
    android:layout_width="368dp"
    android:layout_height="551dp"
    tools:layout_editor_absoluteY="8dp"
    tools:layout_editor_absoluteX="8dp" />

...