0

レイアウトファイルを作成しました。他の レイアウト が 含まれ て い ます . その中にも1つのリストビューがあります。私はそれに固定高さを与えています。私の画面では問題なく動作しますが、他の画面サイズで使用するとフルに表示されません。すべてのサイズのデバイスでどのように機能しますか。コードを以下に示します。

<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="@drawable/bg" >

    <include
        android:id="@+id/mainScreenHeader"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        layout="@layout/main_screen_header" />


    <include
        android:id="@+id/mainScreenListHeader"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/mainScreenHeader"
        layout="@layout/main_screen_list_header" >
    </include>

    <ListView
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="270dp"
        android:layout_below="@+id/mainScreenListHeader"
        android:cacheColorHint="#00000000"
        android:drawSelectorOnTop="false" />

     <include
        android:id="@+id/mainScreenFilterClient"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/list"
        android:layout_marginTop="10dp"
        layout="@layout/main_screen_filter_client" >
    </include>

    <include
        android:id="@+id/footer"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/mainScreenFilterClient"
        android:layout_marginTop="10dp"
        layout="@layout/footer" >
    </include>
    </RelativeLayout>
4

1 に答える 1

0

デバイスの画面サイズに応じて行数を事前に決定し、各行の高さを計算する必要があります。android:layout_height="270dp" を明示的に指定しないでください。画面の高さを取得し、リストビューの行数を決定するには、これを参照できます:

    private int retrieveDimensions() {
        int noOfRows= 0;
        int screenSize = getResources().getConfiguration().screenLayout &
                Configuration.SCREENLAYOUT_SIZE_MASK;

        switch(screenSize) {
        case Configuration.SCREENLAYOUT_SIZE_LARGE:
        case Configuration.SCREENLAYOUT_SIZE_XLARGE:
            noOfRows= 5;
            break;
        case Configuration.SCREENLAYOUT_SIZE_NORMAL:
            noOfRows= 4;
            break;
        case Configuration.SCREENLAYOUT_SIZE_SMALL:
            noOfRows= 3;
            break;
    }
于 2013-01-15T08:32:35.547 に答える