0

リストビューのレイアウトをカスタマイズしました。リストの項目は 5 つ以上になります。リストに 5 ~ 10 個の項目があれば、見栄えがよくなります。

ただし、アイテムが 5 つしかない場合、高さが大きいデバイスではリストの下に空白が表示されます。これは見栄えがよくありません。

以下は私のリスト行のレイアウトです -

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#FFF"
    android:orientation="horizontal"
    android:padding="5dip" >

    <TextView
        android:id="@+id/txt_update_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:focusable="false"
        android:paddingLeft="10sp"
        android:text="title"
        android:textColor="#b73a3e"
        android:textStyle="bold"
        android:typeface="normal" />

    <TextView
        android:id="@+id/txt_update_excerpt"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/txt_update_title"
        android:layout_marginTop="1dip"
        android:focusable="false"
        android:paddingLeft="10sp"
        android:paddingRight="10dp"
        android:text="text"
        android:textColor="#343434"
        android:textSize="15dip" />

    <TextView
        android:id="@+id/txt_uid"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginLeft="20dip"
        android:layout_toRightOf="@+id/txt_update_title"
        android:focusable="false"
        android:text="some" />

    <ImageView
        android:id="@+id/arrow"
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:layout_alignBottom="@+id/txt_uid"
        android:layout_alignRight="@+id/txt_update_excerpt"
        android:layout_centerInParent="true"
        android:scaleType="centerInside"
        android:paddingRight="5dp"
        android:src="@drawable/arrow" />

</RelativeLayout>

そしてリストビュー -

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:padding="10dp" >

        <TextView
            android:id="@+id/tag_line"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/tagline"
            android:textColor="#fff" />

        <ListView
            android:id="@+id/list_updates"
            android:layout_width="match_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:cacheColorHint="#0000"
            android:divider="#00000000"
            android:dividerHeight="0px"
            android:overScrollMode="never" >
        </ListView>
</LinearLayout>

私が望むのは、デバイスの高さが大きい場合、スクロールなしですべてのアイテムを表示するように各行の高さをスケーリングすることにより、リストを完全な高さにすることです。アイテムがそれ以上の場合、スクロールが表示されます。どうすればこれを設定できますか?


アップデート

以前にリストに含まれる項目の数を確認し、それらが 5 ~ 6 未満の場合は、LinearLayout で構成される別のレイアウトまたはいっぱいになるものを選択するソリューションをオプトインできます。空白。しかし、私はそのようなために選択する必要がある構造を理解できませんLinearLayout。5 ~ 6 個の LinearLayout を選択する必要がありますか?

4

1 に答える 1

1

私の見解では、そのような機能を実装する必要がある場合は、次のようにします。

  • 不要な空白があるかどうかを確認します(blankHeight=(ListViewHeight-count*rowHeight)>0)
  • heightToPlus = 空白の高さ/数
  • 次に、各行の高さをrowHeight + heightToPlusに設定できます

すべての高さは getHeight で取得でき、setHeight で設定することもできます。これらは表示方法です。
だから私はそれを実装するのは難しくないと思います...

于 2013-08-31T16:02:51.457 に答える