我创建了一个扩展ArrayAdapter的自定义适配器。我想在视图分页器中包含它并在xml布局中显示其他内容(标题等)。
所以现在我可以在没有viewPager的情况下使用onCreate方法中的以下代码来实现它:
AppAdapter adapter = new AppAdapter(this,appinfo);
setListAdapter(adapter);
但是当我尝试以下操作时出现错误:
viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setAdapter(adapter); //says custom adapter can't be applied, should be normal adapter
xml part
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:auto="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="#EEEEEE"
android:padding="5dip"
android:id="@+id/lay">
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
我非常确定这是一个简单的解决方法,而不是创建自定义适配器。请从这里告诉我你的意见
答案 0 :(得分:0)
PagerAdapter
使用的ViewPager
与Adapter
的子类使用的AdapterView
完全不同(包括ListView
,Spinner
,Gridview
,...但不是ViewPager
)。
提供的唯一实施是FragmentPagerAdapter
和FragmentStatePagerAdapter
。你可以编写自己的,但它比普通的适配器更复杂。
顺便说一下,这些适配器中的每一个都有两个版本,一个在v13 compat lib中(对于本机片段):
https://developer.android.com/reference/android/support/v13/app/FragmentStatePagerAdapter.html https://developer.android.com/reference/android/support/v13/app/FragmentPagerAdapter.html
和v4 compat lib中的一个(对于compat片段):
https://developer.android.com/reference/android/support/v4/app/FragmentStatePagerAdapter.html https://developer.android.com/reference/android/support/v4/app/FragmentPagerAdapter.html