ListViewにSimpleCursorAdapterを使用すると、ListViewのアイテムの高さが次のようになるのはなぜですか-
(私のコードは this に基づいています)
ただし、配列を使用する場合、リストビューのアイテムの高さが大きくなります
(私は 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を使用するときに行の高さに違いがあるのはなぜですか?
Android:textAppearance="?android:attr/textAppearanceLarge"
効果がないように見えた。
Android:minHeight="?android:attr/listPreferredItemHeight"
私の身長を変えた
私にとってのコツは、高さを設定することではなく、代わりにminHeightを設定することでした。これは、カスタムアダプターが各行のレンダリングに使用しているレイアウトのルートビューに適用する必要があります。
リストアイテムレイアウトでパディングを使用して、アイテムの端にスペースを追加する必要があります(フォントサイズを大きくしてもそれはできません)。
<?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" />
私はそのようなことをしました:
@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);または何も変更しません。私にとってはうまくいきましたが、同じ問題がありました。
リストビュー項目の高さは、その内容に基づいて調整されます。最初の画像では、コンテンツはありません。したがって、高さは非常に最小です。 2番目の画像では、テキストのサイズに基づいて高さが増加します。なぜなら、Android:layout_height = "wrap_content"を指定したからです。
これが私の解決策です。 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に設定しています。
これは私の解決策です(ネストされた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>