Стиль первые 2 TextViews в Android ListView по-разному

1

У меня есть ListView, и я хочу, чтобы первые две записи в нем отображались иначе, чем остальные. Ничего необычного, я хочу, чтобы все они просто были текстовыми. Но первые две записи должны иметь разные размеры и весы, чем остальные. Я пробовал модифицировать класс ArrayAdapter следующим образом:

private class BusStopAdapter<T> extends ArrayAdapter<T>{

  public BusStopAdapter(  
    Context context, int textViewResourceId,
    List<T> objects)
  {
    super(context, textViewResourceId, objects);
  }

  public View getView(int position, View convertView, 
    ViewGroup parent)
  {
    TextView toReturn = 
      (TextView)super.getView(position, convertView, parent);
    if(position == 0){
     toReturn.setTextSize(12);
     toReturn.setText("Previous Bus: " + toReturn.getText());
     toReturn.setPadding(0,0,0,0);
    }
    else if(position == 1){
      toReturn.setTextSize(20);
      toReturn.setPadding(
        toReturn.getPaddingLeft(),
        0,
        toReturn.getPaddingRight(),
        0
      );
      toReturn.setText("Next Bus: " + toReturn.getText());
      toReturn.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.TOP);
    }
    return toReturn;
  }

}

Но это непреднамеренно приводит к тому, что некоторые другие текстовые эффекты используют эти специальные атрибуты. Я думаю, это потому, что textviews получают "переработку" в классе AbsListAdapter.

Теги:
textview
listview

1 ответ

1
Лучший ответ

Попробуйте вот так:

if(position == 0){
     toReturn.setTextSize(12);
     toReturn.setText("Previous Bus: " + toReturn.getText());
     toReturn.setPadding(0,0,0,0);
    }
    else if(position == 1){
      toReturn.setTextSize(20);
      toReturn.setPadding(
        toReturn.getPaddingLeft(),
        0,
        toReturn.getPaddingRight(),
        0
      );
   else
      style it normally or whatever you want.........
  • 0
    Потрясающие. Это сделал это. Я думал об этом, но я решил, что super.getView должен просто работать. Думаю нет.
  • 0
    отлично.........................

Ещё вопросы

Сообщество Overcoder
Наверх
Меню