web-dev-qa-db-ja.com

androidリストビュー項目の高さ

ListViewにSimpleCursorAdapterを使用すると、ListViewのアイテムの高さが次のようになるのはなぜですか- listview image

(私のコードは this に基づいています)

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

listview big

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

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

<?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を使用するときに行の高さに違いがあるのはなぜですか?

51
olegi
  Android:textAppearance="?android:attr/textAppearanceLarge" 

効果がないように見えた。

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

私の身長を変えた

132
Bamboo

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

35
Evan

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

<?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" />
10
afollestad

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

@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);または何も変更しません。私にとってはうまくいきましたが、同じ問題がありました。

4
omnisius

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

1
spr

これが私の解決策です。 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に設定しています。

0
Rakin Afser

これは私の解決策です(ネストされた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>
0
Praise Song