53

ListView に SimpleCursorAdapter を使用すると、ListView の項目の高さがこのようになるのはなぜですか?リストビュー画像

(これに基づく私のコード)

しかし、配列を使用すると、リストビューのアイテムの高さが大きくなります

リストビュー

(私はこれに基づいてリストビューを学びます)

アイテムリストビューの行レイアウトは

<?xml version="1.0" encoding="utf-8"?>
<TextView android:id="@+id/text1"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

だから私の質問は、ArrayAdapter と SimpleCursorAdapter を使用するときに行の高さに違いがあるのはなぜですか?

4

7 に答える 7

134
  android:textAppearance="?android:attr/textAppearanceLarge" 

効果はないようでした。

  android:minHeight="?android:attr/listPreferredItemHeight" 

私のために高さを変えた

于 2010-11-25T07:10:46.693 に答える
37

私にとっての秘訣は、高さを設定することではなく、代わりに minHeight を設定することでした。これは、カスタム アダプターが各行をレンダリングするために使用するレイアウトのルート ビューに適用する必要があります。

于 2011-09-09T23:19:34.227 に答える
10

リストアイテムのレイアウトでパディングを使用して、アイテムの端にスペースを追加する必要があります (フォントサイズを大きくするだけではそうはなりません)。

<?xml version="1.0" encoding="utf-8"?>
<TextView android:id="@+id/text1"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:padding="8dp" />
于 2012-05-12T22:29:29.817 に答える
4

私はそのようなことをしました:

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    View view = super.getView(position, convertView, parent);

    TextView textView = (TextView) view.findViewById(android.R.id.text1);
    textView.setHeight(30);
    textView.setMinimumHeight(30);

    /*YOUR CHOICE OF COLOR*/
    textView.setTextColor(Color.BLACK);

    return view;
}

両方のフィールドを配置する必要があります textView.setHeight(30); textView.setMinimumHeight(30); または何も変わりません。私にとってはうまくいき、同じ問題がありました。

于 2013-04-15T08:57:58.307 に答える
1

リスト ビュー アイテムの高さは、その内容に基づいて調整されます。最初の画像では、コンテンツはありません。そのため、高さは最小限です。2 番目の画像では、テキストのサイズに基づいて高さが増加しています。android:layout_height="wrap_content" を指定したためです。

于 2012-12-10T10:05:59.080 に答える
0

これが私の解決策です。BaseAdapter サブクラスの getView() です。

public View getView(int position, View convertView, ViewGroup parent)
{
    if(convertView==null)
    {
        convertView=inflater.inflate(R.layout.list_view, parent,false);
        System.out.println("In");
    }
    convertView.setMinimumHeight(100);
    return convertView;
}

ここでは、ListItem の最小の高さを 100 に設定しました。

于 2016-07-19T16:08:09.540 に答える
-1

これが私の解決策です(ネストされた LinearLayout があります):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/item"
            android:layout_width="match_parent"
            android:layout_height="47dp"
            android:background="@drawable/box_arrow_top_bg"
            android:gravity="center"
            android:text="全部收支"
            android:textColor="#666"
            android:textSize="16sp" />
    </LinearLayout>

</LinearLayout>
于 2013-02-18T16:39:31.340 に答える