在LinearLayout中android - footer不可见

时间:2013-12-04 17:06:36

标签: android android-layout

我必须创建一个由以下内容组成的布局: - 标题 - 中央GridView - 页脚

这是我的xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/gridrelativelayout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <!--  Header -->

        <LinearLayout
            android:id="@+id/header"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@color/header" >

                <!-- Logo -->
                <ImageView android:src="@drawable/header"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_gravity="top"/>
                <!-- /Logo -->
        </LinearLayout>

    <!-- /Header -->

    <LinearLayout
        android:id="@+id/grid_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

      <GridView
        android:id="@+id/grid"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:columnWidth="5dp"
        android:horizontalSpacing="5dp"
        android:numColumns="2"
        android:stretchMode="columnWidth"
        android:verticalSpacing="20dp" />

    </LinearLayout>

    <!--  Footer -->

        <LinearLayout
            android:id="@+id/footer"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/header" >

             <!-- Logo -->
                <ImageView 
                    android:src="@drawable/footer"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"/>
             <!-- /Logo -->   
        </LinearLayout>

    <!-- /Footer -->

</LinearLayout>

我不知道为什么但我无法显示页脚,即使我将其布局重力设置为“底部”..任何人都可以帮助我吗?提前谢谢!

3 个答案:

答案 0 :(得分:2)

使用match_parent的grid_layout layout_height,它将填充LinearLayout的其余空间。你需要切换到RelativeLayout,使grid_layout具有wrap_content的高度,或者给你的footer一个负余量(这将使它被绘制在grid_layout上)。

您还可以尝试为grid_layoutfooter视图试用layout_weight。给他们一个重量应该在屏幕上分享它们之间的剩余空间。

答案 1 :(得分:1)

使用Relative layout

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

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/imageView1"
        android:layout_alignParentBottom="true"
        android:src="@drawable/ic_launcher" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:src="@drawable/ic_launcher" />

    <GridView
        android:id="@+id/gridView1"
        android:layout_above="@+id/imageView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/imageView1"
        android:numColumns="3" >

    </GridView>

</RelativeLayout>

图形布局的快照

enter image description here

答案 2 :(得分:0)

您可以尝试添加 - android:layout_weight =“1”

<!--  Header -->

    <LinearLayout
        android:id="@+id/header"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="@color/header" >

            <!-- Logo -->
            <ImageView android:src="@drawable/header"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_gravity="top"/>
            <!-- /Logo -->
    </LinearLayout>

<!-- /Header -->

<LinearLayout
    android:id="@+id/grid_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:orientation="vertical" >

  <GridView
    android:id="@+id/grid"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:columnWidth="5dp"
    android:horizontalSpacing="5dp"
    android:numColumns="2"
    android:stretchMode="columnWidth"
    android:verticalSpacing="20dp" />

</LinearLayout>

<!--  Footer -->

    <LinearLayout
        android:id="@+id/footer"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="@color/header" >

         <!-- Logo -->
            <ImageView 
                android:src="@drawable/footer"
                android:layout_width="match_parent"
                android:layout_height="match_parent"/>
         <!-- /Logo -->   
    </LinearLayout>

<!-- /Footer -->