设置ListView项目高度

use*_*689 19 android listview

这应该是一件非常容易的事情,但它看起来非常棘手.在我的代码中我有这个ListView:

<ListView android:id="@+id/sums_list" android:layout_width="fill_parent"
        android:layout_height="0dp" android:layout_weight="1" android:dividerHeight="0dp"></ListView>
Run Code Online (Sandbox Code Playgroud)

这是使用使用此视图的ArrayAdapter填充的:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:cdpb="http://schemas.android.com/apk/res/ale.android.brainfitness"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="55dp">
...
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

为什么55dp项目不高?

谢谢大家

小智 67

你是如何夸大观点的?

如果您将'parent'参数设置为null,如下所示,则忽略布局参数.

@Override
public View getView(int position, View convertView, ViewGroup parent) {
  ...
  View v = inflater.inflate(R.layout.filtered_trip_row, null);
  …

  return v;
}
Run Code Online (Sandbox Code Playgroud)

将'父母'传递给膨胀应该按照您的预期运作.

@Override
public View getView(int position, View convertView, ViewGroup parent) {
  ...
  View v = inflater.inflate(R.layout.filtered_trip_row, parent);
  …

  return v;
}
Run Code Online (Sandbox Code Playgroud)

这详细解释了:为什么LayoutInflater会忽略我指定的layout_width和layout_height布局参数?

为了避免获取UnsupportedOperationException,您可以添加false为输入参数inflator.例:

inflater.inflate(R.layout.filtered_trip_row, parent, false)
Run Code Online (Sandbox Code Playgroud)

  • 为了避免@AlanLai的问题,将参数`false`添加到方法`inflate` (17认同)
  • @Amol Brid,我得到错误`java.lang.UnsupportedOperationException:AdapterView不支持addView(View,LayoutParams) (11认同)
  • @Alan Lai喜欢这样:`查看v = inflater.inflate(R.layout.filtered_trip_row,parent,false);` (7认同)

Spr*_*ies 9

@Override
public View getView(int position, View convertView, ViewGroup parent) {
  ...
  View v = inflater.inflate(R.layout.filtered_trip_row, parent,false);
  …

  return v;
}
Run Code Online (Sandbox Code Playgroud)

只需将boolean值传递给方法,以便将yourrowlayout添加到listview中,并且不会出现错误,如错误java.lang.UnsupportedOperationException:AdapterView中不支持addView(View,LayoutParams)

并添加你想通过适配器填充的yourLayout

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:cdpb="http://schemas.android.com/apk/res/ale.android.brainfitness"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="55dp">
...
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

它适用于我,我认为它可以帮助你