【发布时间】:2013-05-11 00:09:43
【问题描述】:
我的应用程序使用具有自己的 support-library-v4.jar 的 DirectionalViewPager 库,但是当我使用此版本时,当我按下主页按钮时,它会导致强制关闭。我发现我应该更改为最新版本的支持库,但是 DirectionalViewPager 无法导入:PagerAdapter.DataSetObserver
我该如何解决这个问题?
感谢您的帮助。
【问题讨论】:
标签: android
我的应用程序使用具有自己的 support-library-v4.jar 的 DirectionalViewPager 库,但是当我使用此版本时,当我按下主页按钮时,它会导致强制关闭。我发现我应该更改为最新版本的支持库,但是 DirectionalViewPager 无法导入:PagerAdapter.DataSetObserver
我该如何解决这个问题?
感谢您的帮助。
【问题讨论】:
标签: android
看起来范围可能已更改,导致 DVP 库无法工作。有关更多详细信息和解决方法,请参阅 here 和 here。
将以下类添加到您的项目中(确保包正确,否则这将不起作用):
package android.support.v4.view;
public final class PagerAdapterPublicCompat {
private PagerAdapterPublicCompat() {}
public interface DataSetObserver extends PagerAdapter.DataSetObserver {}
public static void setDataSetObserver(PagerAdapter adapter, DataSetObserver observer) {
adapter.setDataSetObserver(observer);
}
}
那么你必须设置你的数据观察者:
// from the sample code:
final DirectionalViewPager pager = (DirectionalViewPager)findViewById(R.id.pager);
pager.setAdapter(new TestFragmentAdapter(getSupportFragmentManager()));
// new addition:
PagerAdapterPublicCompat.setDataSetObserver(pager.getAdapter(), YourDataSetObserver);
【讨论】:
PagerAdapterPublicCompat 等于VerticalViewPagerCompat,目前在图书馆里,YourDataSetObserver 是什么?我不使用任何 DataSetObserver。