Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ListView项目高度始终相同(并且错误)_Android_Listview - Fatal编程技术网

Android ListView项目高度始终相同(并且错误)

Android ListView项目高度始终相同(并且错误),android,listview,Android,Listview,我正在尝试调整列表视图的大小以显示所有项目 final ListAdapter adapter = timeline.getAdapter(); int totalHeight = 0; final int desiredWidth = View.MeasureSpec.makeMeasureSpec(timeline.getWidth(), View.MeasureSpec.AT_MOST); for (int i = 0; i < adapter.getCount(); i++) {

我正在尝试调整
列表视图的大小以显示所有项目

final ListAdapter adapter = timeline.getAdapter();
int totalHeight = 0;
final int desiredWidth = View.MeasureSpec.makeMeasureSpec(timeline.getWidth(), View.MeasureSpec.AT_MOST);
for (int i = 0; i < adapter.getCount(); i++) {
    final View listItem = adapter.getView(i, null, timeline);
    listItem.measure(desiredWidth, View.MeasureSpec.UNSPECIFIED);
    Log.v(TAG, "Item size = " + listItem.getMeasuredHeight());  // Always 38
    totalHeight += listItem.getMeasuredHeight();
}
final ViewGroup.LayoutParams params = timeline.getLayoutParams();
params.height = totalHeight;
timeline.setLayoutParams(params);
timeline.requestLayout();

如果您试图使listview高度与其总项目高度完全相同,那么您将错过adapteritem height的核心用法是正确的。如果您试图使listview高度与其总项目高度完全相同,那么您将错过adapteritem height的核心用法并没有错。这不是你想要的。
@Override
public View getView(final int position, View view, final ViewGroup parent) {
    final ViewHolder holder;

    if (view == null) {
        final LayoutInflater li = (LayoutInflater) parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        view = li.inflate(R.layout.timeline_item, parent, false);

        holder = new ViewHolder(view);
        view.setTag(holder);
    } else {
        holder = (ViewHolder) view.getTag();
    }

    final ActivityLogItem log = (ActivityLogItem) getItem(position);
    holder.time.setText(format.print(log.getRecordedTime().withZone(DateTimeZone.getDefault())));
    holder.time.setTextColor(log.isImportant() ? view.getResources().getColor(R.color.orange) : Color.WHITE);
    holder.event.setText(log.getLocalizedType(view.getResources()));
    holder.event.setTextColor(log.isImportant() ? view.getResources().getColor(R.color.orange) : Color.BLACK);

    return view;
}