在ListView android中使用ListView的项目

时间:2013-09-17 12:53:41

标签: android listview android-listview

我有一个listView,其中包含每个项目的另一个listView。我的问题是,对于每个listView每个项目,只显示一个项目。我不明白为什么?

这就是我想要的和我拥有的一样:

capture image

在我的第一个ListView的适配器中,我为它的每个项目实现了一个setAdapter:

@Override
public View getView(int position, View v, ViewGroup parent) {
    final PlanningViewHolder viewHolder;

    if (v == null) {
        v = inflater.inflate(R.layout.item_list_planning, parent, false);
        viewHolder = new PlanningViewHolder();
        viewHolder.textViewPlanningMonth = (TextView) v.findViewById(R.id.textViewPlanningMonth);
        viewHolder.textViewPlanningDayValue = (TextView) v.findViewById(R.id.textViewPlanningDayValue);
        viewHolder.listViewPlanningContentForDay = (ListView) v.findViewById(R.id.listViewPlanningContentForDay);

        v.setTag(viewHolder);
    } else {
        viewHolder = (PlanningViewHolder) v.getTag();
    }

    Planning planning = getItem(position);
    viewHolder.textViewPlanningMonth.setText(planning.getMonth());
    viewHolder.textViewPlanningDayValue.setText(planning.getDay());
    viewHolder.listViewPlanningContentForDay.setAdapter(new PlanningContentAdapter(context, planning.getListContentPlanning()));
    return v;
}

1 个答案:

答案 0 :(得分:0)

我用这个解决方案解决了我的问题:

LayoutParams params = viewHolder.listViewPlanningContentForDay.getLayoutParams();
params.height = (int)((context.getResources().getDimension(R.dimen.height_item_planning_content) + 
    context.getResources().getDimension(R.dimen.space_item_planning_content)) * 
    planning.getListContentPlanning().size());
viewHolder.listViewPlanningContentForDay.setLayoutParams(params);

我计算了我的内部布局高度的高度,以及它中的行数:

  

ListView新高度=(内部列表视图行布局高度+高度   分隔符)*行数

我在dimens.xml文件中记录了维度,以便与所有设备兼容:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="height_item_planning_content">47dip</dimen>
    <dimen name="space_item_planning_content">1dip</dimen>
</resources>

**感谢BaZinga的帮助