网格视图重叠其他视图android

时间:2013-02-05 05:57:17

标签: android button android-linearlayout android-gridview overlapping

我需要一个按钮,一个网格视图和一个垂直排列的按钮。我可以看到Button和GridView,但是看不到网格视图后声明的按钮。为什么?网格视图声明下面的任何视图都会发生这种情况。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >
        <TextView
        android:id="@+id/text_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="center_horizontal|center_vertical"
        android:layout_marginTop="20dip"
        android:text="Fragment1"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textSize="30dip" />

        <Button 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Button1"/>


     <GridView 
          android:id="@+id/gridview"
          android:layout_width="wrap_content" 
          android:layout_height="match_parent"overla
          android:columnWidth="90dp"
          android:numColumns="auto_fit"
          android:verticalSpacing="10dp"
          android:horizontalSpacing="10dp"
          android:stretchMode="columnWidth"
          android:gravity="center"/>                            

            <Button 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Button1"/>
</LinearLayout>

3 个答案:

答案 0 :(得分:1)

当您使用垂直方向的LinearLayout时,请将wrap_content提供给GridView的高度。

现在,如果您想在屏幕下方显示最后一个按钮,请在GridView中添加 android:layout_weight="1"

答案 1 :(得分:0)

试试这个

  <RelativeLayout 
   android:layout_width="match_parent"
   android:layout_height="match_parent">
 <Button 
     android:id="@+id/button1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Button1"/>

 <Button 
    android:id="@+id/button2"  
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:text="Button1"/>

答案 2 :(得分:0)

因为你已经将gridview的高度声明为match_parent,如果找不到足够的屏幕空间来显示它,它应该与它下面声明的视图重叠。 您应该尝试在gridview下面声明的视图上调用bringtoFront()方法。 从我的观点来看,其他的事情是尽可能尝试relativeLayout并使用android:layout_above和android:layout_below with gridview。