GridView使相同布局中的其他控件在RelativeLayout中不可见

时间:2014-10-29 14:15:35

标签: android android-layout gridview

我的布局设计有问题。当我尝试在Linearlayout中添加GridView时,它使控件不可见(在GridView下面)。

我需要的设计是:

http://www.imagesup.net/pt-514145877008.png

我尝试使用Relativelayout创建它并使用了一个gridView。 这是XML布局文件:

purchase.xml

    <?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="fill_parent"
        android:layout_height="fill_parent"
        android:background="#FFFFFF">

    <LinearLayout
        android:id="@+id/button_area"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:background="#FFFFFF"
        android:orientation="vertical"
        android:padding="10dp" >


        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="One Year Subscription"
            android:textColor="#000000"
            android:textSize="18sp" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:paddingBottom="10dp"
            android:paddingTop="15dp"
            android:text="Rs. 500"
            android:textColor="#000000"
            android:textSize="18sp" />

        <Button
            android:id="@+id/button_continue"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_gravity="right"
            android:layout_marginBottom="5dp"
            android:layout_marginTop="5dp"
            android:background="#FF0000"
            android:text="Buy"
            android:textColor="#FFFFFF" >

            <!-- continue button -->
            <!-- select All check box -->
        </Button>
    </LinearLayout>

        <View android:layout_width="match_parent"
          android:layout_height="3dp"
          android:layout_marginLeft="20dp"
          android:layout_marginRight="20dp"
          android:background="#CDCDCD"/>

   <LinearLayout 
       android:id="@+id/monthly_subscription"
       android:orientation="vertical"
       android:layout_below="@+id/button_area"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content">

       <TextView
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:gravity="center"
           android:paddingBottom="10dp"
           android:paddingTop="15dp"
           android:text="monthly Subscription"
           android:textColor="#000000"
           android:textSize="18sp" />        
    <TextView
      android:id="@+id/price_text"
      android:layout_width="wrap_content"
      android:layout_height="0dp"
      android:layout_gravity="right"
      android:layout_marginRight="5dp"
      android:layout_weight="1"
      android:gravity="right"
      android:text="Rs 0"
      android:textColor="#000000"
      android:textSize="18sp" />

       <GridView
        android:id="@+id/book_grid"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:numColumns="3"
        android:padding="10dp"
        tools:listitem="@layout/book_list_item" >
    </GridView>

   <Button
            android:id="@+id/button_continue_bottom"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_gravity="right"
            android:layout_margin="10dp"
            android:layout_marginBottom="5dp"
            android:layout_marginTop="10dp"
            android:background="#FF0000"
            android:text="Buy"
            android:textColor="#FFFFFF" >
        </Button>

   </LinearLayout> 


</RelativeLayout>

这是我尝试使用此代码时得到的结果,当我尝试将GridView的可见性设置为&#34;去了&#34;

时,我也得到了结果

http://www.imagesup.net/pm-314145913100.png

我的设计出了什么问题?是什么让控件看不见。请帮我设置它作为我所需的布局。

1 个答案:

答案 0 :(得分:0)

您应该将底部按钮放在线性布局之外。试试这段代码:

<?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="fill_parent"
 android:layout_height="fill_parent"
 android:background="#FFFFFF>

<!-- Align to parent top-->
<LinearLayout
    android:id="@+id/button_area"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:background="#FFFFFF"
    android:gravity="center"
    android:orientation="vertical"
    android:padding="10dp"> 


    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="One Year Subscription"
        android:textColor="#000000"
        android:textSize="18sp" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:paddingBottom="10dp"
        android:paddingTop="15dp"
        android:text="Rs. 500"
        android:textColor="#000000"
        android:textSize="18sp" />

    <Button
        android:id="@+id/button_continue"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_gravity="right"
        android:layout_marginBottom="5dp"
        android:layout_marginTop="5dp"
        android:background="#FF0000"
        android:text="Buy"
        android:textColor="#FFFFFF">

        <!-- continue button -->
        <!-- select All check box -->
    </Button>
</LinearLayout>

<!-- layout below top linearlayout-->
<View
    android:id="@+id/line"
    android:layout_width="match_parent"
    android:layout_height="3dp"
    android:layout_below="@+id/button_area"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp"
    android:background="#CDCDCD" />

<!-- layout below line view but above bottom button-->
<LinearLayout
    android:id="@+id/monthly_subscription"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/button_continue_bottom"
    android:layout_below="@+id/line"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:paddingBottom="10dp"
        android:paddingTop="15dp"
        android:text="monthly Subscription"
        android:textColor="#000000"
        android:textSize="18sp" />

    <TextView
        android:id="@+id/price_text"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_gravity="right"
        android:layout_marginRight="5dp"
        android:layout_weight="1"
        android:gravity="right"
        android:text="Rs 0"
        android:textColor="#000000"
        android:textSize="18sp" />

    <GridView
        android:id="@+id/book_grid"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:numColumns="3"
        android:padding="10dp"
        android:stretchMode="columnWidth"
        tools:listitem="@layout/book_list_item"></GridView>


</LinearLayout>

<!-- layout outside of linear layout and align to parent bottom-->
<Button
    android:id="@+id/button_continue_bottom"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_alignParentBottom="true"
    android:layout_margin="10dp"
    android:layout_marginBottom="5dp"
    android:layout_marginTop="10dp"
    android:background="#FF0000" 
    android:text="Buy"
    android:textColor="#FFFFFF" />

</RelativeLayout>