5

我想在我的 android 应用程序中实现 Pull to Refresh 功能,所以我实现了这个库: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 PullToRefreshListViewThe method setDividerHeight(int) is undefined for the type PullToRefreshListView.

我在这里做错了什么?

4

1 回答 1

8

PullToRefreshListView不是 a 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"...
于 2013-04-20T19:44:55.637 回答