Как настроить пользовательский ListView с разделителем с помощью Android?


Я хотел реализовать функцию Pull To Refresh в своем android-приложении, поэтому я реализовал эту библиотеку: Android-PullToRefresh. Однако я не могу установить пользовательский стиль для разделения программно.

Код прост:

list = (PullToRefreshListView) findViewById(R.id.list);
int[] colors = {0, 0xFF97CF4D, 0}; 
list.setDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors));
list.setDividerHeight(1);

Однако, он выбрасывает эту ошибку: The method setDivider(GradientDrawable) is undefined for the type PullToRefreshListView и The method setDividerHeight(int) is undefined for the type PullToRefreshListView.

Что я здесь делаю не так?

1 5

1 ответ:

PullToRefreshListView не является ListView, отсюда и эта ошибка. Вы должны получить доступ к ListView внутри PullToRefreshListView и вызвать setDivider* методы на этом.

list = (PullToRefreshListView) findViewById(R.id.list);
int[] colors = {0, 0xFF97CF4D, 0};
ListView inner = list.getRefreshableView();
inner.setDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors));
inner.setDividerHeight(1);

В качестве альтернативы вы можете определить свой градиент как XML-чертеж и установить атрибуты прямо в вашем макете, как показано в примере здесь

Например:

<com.handmark.pulltorefresh.library.PullToRefreshListView
  android:divider="@drawable/fancy_gradient"
  android:dividerHeight="@dimen/divider_height"...