Ну, это кажется довольно быстрой проблемой, но на самом деле это не так. Вы должны изменить свой адаптер и сделать так, чтобы он принимал 3 различных типа элементов (вверх, вниз, в середине), а затем изменить getView примерно так:
...
if (convertView == null) {
convertView = getLayoutInflater().inflate(R.layout.your_layout, parent, false);
switch (type) {
case TYPE_ITEM_UP:
convertView.setBackgroundResource(R.drawable.selector_up);
break;
case TYPE_ITEM_DOWN:
convertView.setBackgroundResource(R.drawable.selector_down);
break;
...
}
}
...
Взгляните на этот пример , вы можете свести свою проблему к этому, очень полезно. Я использовал то же решение для вашей проблемы, и оно хорошо работает.