布局在较低分辨率的屏幕中被切断

时间:2011-08-18 00:25:17

标签: android

在我的Android应用程序中,我有一个带有listview的RelativeLayout和底部的4个按钮。选择列表视图中的任何项目将使四个隐藏按钮可见。我遵循了http://developer.android.com/guide/practices/screens_support.html的最佳做法。它在WVGA800的仿真器和实际设备中工作正常。我正在测试不同屏幕尺寸的应用程序。对于QVGA(240x320)来说,底部的按钮会被切断。 这是xml

<?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout android:id="@+id/listViewrelativeLayout" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"  >
  <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/info_tv_id" android:textSize="10sp" android:layout_marginLeft="10dip"></TextView> 
  <ListView android:id="@+id/listView1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:choiceMode="singleChoice" android:layout_marginTop="25dip" android:layout_below="@id/info_tv_id"> 
  </ListView>   
  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="bottom" android:layout_alignParentBottom="true" android:id="@+id/relativekeybuttons" android:layout_below="@+id/listView1" android:visibility="gone">"
               <Button android:id="@+id/setasdefault" android:text="@string/default_btn_text" android:layout_marginTop="10dip" 
                android:layout_height="50sp" android:layout_width="75sp">
               </Button>
               <Button android:id="@+id/changepassphrase" android:layout_marginTop="10dip" android:text="@string/passphrase_btn_text" android:layout_width="75sp" android:layout_height="50sp"
                android:layout_toRightOf="@+id/setasdefault"></Button>
               <Button android:id="@+id/rename" android:text="@string/rename_btn_text" android:layout_marginTop="10dip" android:layout_width="75sp"  android:layout_height="50sp"
                android:layout_toRightOf="@+id/changepassphrase"></Button>   
               <Button android:id="@+id/delete" android:layout_width="75sp" android:layout_marginTop="10dip" android:layout_height="50sp" android:text="@string/delete_btn_text"
               android:layout_toRightOf="@+id/rename"></Button>             
  </RelativeLayout>      
</RelativeLayout>

另外,我希望listview在布局中占用固定的长度。例如:至少70%的屏幕,因此列表视图的长度不依赖于列表视图中的项目。

提前致谢

2 个答案:

答案 0 :(得分:0)

将xml中的所有单位更改为dp。然后调整控件。否则,您必须使用scrollview作为父级。

答案 1 :(得分:0)

我对你的布局进行了一些修改。这可能有用。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:id="@+id/listViewrelativeLayout"
    android:orientation="vertical">
    <TextView android:layout_height="wrap_content" android:layout_width="fill_parent" 
        android:id="@+id/info_tv_id" android:text="Click Me" android:textSize="18sp" 
        android:layout_marginLeft="10dip" android:gravity="center"/>
    <FrameLayout android:layout_width="fill_parent" android:layout_height="0dip"
        android:layout_weight="1.0">
        <ListView android:id="@+id/listView1" android:layout_width="fill_parent" 
            android:layout_height="fill_parent" android:choiceMode="singleChoice" 
            android:layout_below="@id/info_tv_id"/>
        <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:id="@+id/relativekeybuttons" android:orientation="horizontal" 
            android:layout_gravity="bottom" android:visibility="gone">
            <Button android:layout_width="0dip" android:layout_height="wrap_content" 
                android:layout_weight="1.0" android:text="Default" android:layout_marginLeft="1dip"
                android:textSize="11sp"/>
            <Button android:layout_width="0dip" android:layout_height="wrap_content" 
                android:layout_weight="1.0" android:text="Passphrase"
                android:textSize="11sp"/>
            <Button android:layout_width="0dip" android:layout_height="wrap_content" 
                android:layout_weight="1.0" android:text="Rename"
                android:textSize="11sp"/>
            <Button android:layout_width="0dip" android:layout_height="wrap_content" 
                android:layout_weight="1.0" android:text="Delete" android:layout_marginRight="1dip"
                android:textSize="11sp"/>
        </LinearLayout>  
    </FrameLayout>
</LinearLayout>

尽量不要使用准确的宽度和高度,因为它可能无法在所有手机上使用。