我有一个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;
}
答案 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的帮助