在GridView(布局充气机)中显示屏幕底部有按钮的问题?

时间:2011-06-09 10:16:56

标签: android android-layout android-gridview

我正在使用带有布局充气器的gridview来显示icon with text,区别在于我必须在屏幕底部提供一个按钮。我的布局文件如下所示:

<?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 个答案:

答案 0 :(得分:5)

尝试这个新代码我更新了它并检查了.........

<?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 :(得分:1)

尝试在另一个RelativeView

中包含gridview和相对视图
<?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

答案 2 :(得分:0)

使用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" />