Android布局设计 - 如何以xml(布局)获取屏幕高度

时间:2011-08-22 10:52:55

标签: android android-layout

我必须设计屏幕。我想将页脚栏放在列表下方。 见这里:

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

<!-- Header -->
<LinearLayout android:id="@+id/header"
    android:background="#0099CC"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent">

    <TextView android:id="@+id/routeCode"
        android:layout_height="fill_parent"
        android:layout_width="wrap_content"
        android:text="Code"
        android:width="100dip"
        android:height="30dip"
        android:textColor="@color/black"
        android:gravity="center_horizontal"
    />
    <TextView android:id="@+id/routeName"
        android:layout_height="fill_parent"
        android:layout_width="wrap_content"
        android:text="Name"
        android:width="150dip"
        android:height="30dip"
        android:textColor="@color/black"
        android:gravity="center_horizontal"
    />
    <TextView android:id="@+id/outlets"
        android:layout_height="fill_parent"
        android:layout_width="wrap_content"
        android:text="Outlets"
        android:width="60dip"
        android:height="30dip"
        android:textColor="@color/black"
        android:gravity="center_horizontal"
    />
</LinearLayout>

<!-- List Divider -->
<View android:layout_width="fill_parent"
    android:layout_height="1dip"
    android:background="?android:attr/listDivider" />

    <!-- ListView (grid_items) -->
    <LinearLayout android:id="@+id/layout"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content" 
                                        android:layout_weight="1" >

        <ListView android:id="@android:id/list"
                  android:layout_height="405dp"
                  android:layout_width="fill_parent">
        </ListView>

        <TextView android:id="@id/android:empty"
                  android:layout_width="fill_parent" 
                  android:gravity="center_vertical"
                  android:layout_height="fill_parent" 
                  android:layout_marginTop="25dp" 
                  android:text="No Sales Routes Define By Admin" />
    </LinearLayout>

     <!-- Footer -->
    <RelativeLayout android:id="@+id/header"
        android:background="#000000"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent">

        <Button android:text="Exit" 
                android:id="@+id/button1" 
                android:background="#0099FF"
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_marginLeft="8dp"
                android:onClick="onExitAction">
        </Button>

        <Button android:layout_width="wrap_content" 
                android:text="Next" 
                android:background="#0099FF"
                android:layout_height="wrap_content" 
                android:layout_marginRight="8dp"
                android:id="@+id/button2" 
                android:layout_alignParentTop="true" 
                android:layout_alignParentRight="true"
                android:onClick="onNextAction">
       </Button>
    </RelativeLayout>
</LinearLayout>

问题是如果没有列表数据或几行可用,那么会出现页脚栏。如何解决这个问题。我想修复下面的部分。我不会出现....

当我添加此代码android:layout_weight="1"时,它会像这样:  enter image description here

这是我的Tab xml部分;

     <?xml version="1.0" encoding="utf-8"?>

   <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fadingEdge="horizontal">

    <RelativeLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
         >

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:textColor="#ffffff" />

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="56dp"
            android:gravity="bottom"
            android:tabStripEnabled="true"
            android:layout_alignParentBottom="true"/>

    </RelativeLayout>
   </TabHost>

我想在标签上方显示该栏。

请帮帮我..

提前致谢

4 个答案:

答案 0 :(得分:3)

您应该使用LinearLayout内部ListView的权重:

<LinearLayout android:id="@+id/layout"
              android:layout_width="wrap_content"
              android:layout_height="0dip"
              android:layout_weight="1" >

修改: 对“选项卡”使用以下布局:

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fadingEdge="horizontal">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1"
            android:textColor="#ffffff"/>

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="56dp"
            android:gravity="bottom"
            android:tabStripEnabled="true"/>
    </LinearLayout>
</TabHost>

答案 1 :(得分:3)

试试这段代码,

<?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout android:id="@+id/main"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:background="@drawable/icon">

<!-- Header -->
<LinearLayout android:id="@+id/header"
    android:background="#0099CC"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent">

    <TextView android:id="@+id/routeCode"
        android:layout_height="fill_parent"
        android:layout_width="wrap_content"
        android:text="Code"
        android:width="100dip"
        android:height="30dip"
        android:gravity="center_horizontal"
    />
    <TextView android:id="@+id/routeName"
        android:layout_height="fill_parent"
        android:layout_width="wrap_content"
        android:text="Name"
        android:width="150dip"
        android:height="30dip"
        android:gravity="center_horizontal"
    />
    <TextView android:id="@+id/outlets"
        android:layout_height="fill_parent"
        android:layout_width="wrap_content"
        android:text="Outlets"
        android:width="60dip"
        android:height="30dip"
        android:gravity="center_horizontal"
    />
</LinearLayout>

<!-- List Divider -->
<View
    android:id="@+id/myView" 
    android:layout_width="fill_parent"
    android:layout_height="1dip"
    android:background="?android:attr/listDivider"
    android:layout_below="@+id/header" />

    <!-- ListView (grid_items) -->
    <LinearLayout android:id="@+id/layout"
                  android:layout_below="@+id/myView"    
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content" >

        <ListView android:id="@android:id/list"
                  android:layout_height="wrap_content"
                  android:layout_width="fill_parent">
        </ListView>

        <TextView android:id="@id/android:empty"
                  android:layout_width="fill_parent" 
                  android:gravity="center_vertical"
                  android:layout_height="fill_parent" 
                  android:layout_marginTop="25dp" 
                  android:text="No Sales Routes Define By Admin" />
    </LinearLayout>

     <!-- Footer -->
    <RelativeLayout
       android:layout_alignParentBottom="true"  
       android:id="@+id/MyRelative"
        android:background="#000000"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_gravity="bottom">

        <Button android:text="Exit" 
                android:id="@+id/button1" 
                android:background="#0099FF"
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_marginLeft="8dp"
                android:onClick="onExitAction">
        </Button>

        <Button android:layout_width="wrap_content" 
                android:text="Next" 
                android:background="#0099FF"
                android:layout_height="wrap_content" 
                android:layout_marginRight="8dp"
                android:id="@+id/button2" 
                android:layout_alignParentTop="true" 
                android:layout_alignParentRight="true"
                android:onClick="onNextAction">
       </Button>
    </RelativeLayout>
</RelativeLayout>

答案 2 :(得分:1)

这应该有效

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

<!-- Header -->
<LinearLayout android:id="@+id/header"
    android:background="#0099CC"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent">

    <TextView android:id="@+id/routeCode"
        android:layout_height="fill_parent"
        android:layout_width="wrap_content"
        android:text="Code"
        android:width="100dip"
        android:height="30dip"
        android:textColor="#000000"
        android:gravity="center_horizontal"
    />
    <TextView android:id="@+id/routeName"
        android:layout_height="fill_parent"
        android:layout_width="wrap_content"
        android:text="Name"
        android:width="150dip"
        android:height="30dip"
        android:textColor="#000000"
        android:gravity="center_horizontal"
    />
    <TextView android:id="@+id/outlets"
        android:layout_height="fill_parent"
        android:layout_width="wrap_content"
        android:text="Outlets"
        android:width="60dip"
        android:height="30dip"
        android:textColor="#000000"
        android:gravity="center_horizontal"
    />
</LinearLayout>

<!-- List Divider -->
<View android:layout_width="fill_parent"
    android:layout_height="1dip"
    android:background="?android:attr/listDivider" />

    <!-- ListView (grid_items) -->
    <LinearLayout android:id="@+id/layout"
                  android:layout_width="wrap_content"
                  android:layout_height="0dip"
                  android:layout_weight="1.0" >

        <ListView android:id="@android:id/list"
                  android:layout_height="fill_parent"
                  android:layout_width="fill_parent">
        </ListView>

        <TextView android:id="@id/android:empty"
                  android:layout_width="fill_parent" 
                  android:gravity="center_vertical"
                  android:layout_height="fill_parent" 
                  android:layout_marginTop="25dp" 
                  android:text="No Sales Routes Define By Admin" />
    </LinearLayout>

     <!-- Footer -->
    <RelativeLayout  android:layout_width="fill_parent"
                   android:layout_height="wrap_content"
                   android:orientation="horizontal">
        <Button android:text="Exit" 
                android:id="@+id/button1" 
                android:background="#0099FF"
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_marginLeft="8dp"
                android:onClick="onExitAction"/>

        <Button android:layout_width="wrap_content" 
                android:text="Next" 
                android:background="#0099FF"
                android:layout_height="wrap_content" 
                android:layout_marginRight="8dp"
                android:id="@+id/button2"
                android:layout_alignParentRight="true" 
                android:onClick="onNextAction"/>
    </RelativeLayout>
</LinearLayout>

答案 3 :(得分:0)

我很想让你的主容器进入RelativeLayout,然后在你的页脚容器上设置android:layout_alignParentBottom="true"