0

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

这是我想要的和我拥有的:

捕捉图像

在我的第一个 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;
}
4

1 回答 1

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 的帮助

于 2013-09-17T13:36:42.057 回答