想要在Android中为每个ListView项设置不同的参数

时间:2014-05-26 14:04:47

标签: android listview iterator margins

我正在尝试在listview中为每个项目设置参数(在这种情况下为边距)。 但是当我这样做时,它只是设置了最后一次迭代的余量。

如何在列表视图中设置每个项目(行)的属性?

最终我想在项目之间设置不同的“差距”(所以我可以将它用于我的自定义日历视图)

最终每个项目的setDividerHeight()也很好,但我对该函数有同样的问题;即一个高度值而不是每行可以更改的变量值。

//for loop
for (int i = 0; i < planning.size(); i++) 
{
planning = getPlanning(medewerkerId, beginDate, eindDate);
int space = i * 15;


final ListView lijstje = (ListView) getActivity().findViewById(R.id.sundayList);
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)       lijstje.getLayoutParams();
params.setMargins(0,space,0,0); // this wont work, and sets the height only on last iteration
lijstje.setAdapter(new PlanbordAdapter(getActivity(), R.layout.planning_item, planning));


lijstje.setOnItemClickListener(new AdapterView.OnItemClickListener()
 {
//onclick stuff here           
 }

}

1 个答案:

答案 0 :(得分:0)

很好地解决我自己的问题:结果我需要在我投影列表的视图上使用“.invalidate()”,以便重新设置正确边距设置的项目。希望这有助于将来遇到同样的问题。