I have a layout as shown below:
In listview there are several CustomViews. Items are displayed according to their indices.
I use this code:
@Override
public int getItemViewType(int position) {
return UL.separators.contains(position) ? 1 : 0;
}
This is getView func:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
NewsHolder holder = null;
View row = convertView;
holder = null;
int type = getItemViewType(position);
if(row == null)
{
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
holder = new NewsHolder();
switch (type) {
case 1:
row= inflater.inflate(R.layout.section_header, null);
holder.itemName = (TextView)row.findViewById(R.id.header);
holder.itemName.setText("CUSTOM TEXT");
row.setTag(holder);
break;
case 0:
row= inflater.inflate(R.layout.custom_row, null);
holder.itemName = (TextView)row.findViewById(R.id.example_itemname);
holder.icon=(ImageView)row.findViewById(R.id.example_image);
holder.button3=(Button)row.findViewById(R.id.swipe_button3);
row.setTag(holder);
ItemRow itemdata = data.get(position);
holder.itemName.setText(itemdata.getItemName());
holder.icon.setImageDrawable(itemdata.getIcon());
break;
}
}
else
{
holder = (NewsHolder)row.getTag();
}
return row;
But when I scrol listview, elements are arranged at random, as shown on screenshots below.
Before scroll:
After scroll: