为什么当我使用SimpleCursorAdapter for ListView时,我在ListView中有像这样的项高度 -
(我的代码基于this)
但使用数组时,Listview项目的高度很高
(我根据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时行高的差异?
答案 0 :(得分:131)
android:textAppearance="?android:attr/textAppearanceLarge"
似乎没有效果。
android:minHeight="?android:attr/listPreferredItemHeight"
改变了我的身高
答案 1 :(得分:35)
对我而言,诀窍不是设置高度 - 而是设置minHeight。这必须应用于自定义适配器用于呈现每一行的任何布局的根视图。
答案 2 :(得分: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" />
答案 3 :(得分: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);或者它不会改变任何东西。对我而言,它起作用了我有同样的问题。
答案 4 :(得分:1)
列表视图项的高度根据其内容进行调整。在第一张图片中,没有内容。所以身高是最低的。在第二个图像中,根据文本的大小增加高度。因为,你指定了android:layout_height =“wrap_content”。
答案 5 :(得分:0)
这是我的解决方案(有一个嵌套的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>
答案 6 :(得分: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;