我在实现自定义PagerAdapter并将其与ViewPager一起使用时遇到问题。此示例PagerAdapter有10个项目,每个项目都是一个按钮,其索引为文本。当我运行程序时,我看到一个文本为"1"而不是"0"的按钮。当我滑动到其他项目时,我只得到空白视图。当我向后滑动时,有时我看到一个带有一些数字的按钮。但是它消失了(也许它正在破坏,我把它从容器中移走了),有时我看到一个带数字的按钮,但是数字在滑动后发生了变化(我想我创建了一个新的按钮,我把它添加到容器中,由于某些原因,视图页显示了这个新按钮)。
我该如何修复这个实现呢?我在示例中没有看到差异。
我的PagerAdapter实现:
public class MyPagerAdapter extends PagerAdapter {
@Override
public int getCount() {
return 10;
}
@Override
public boolean isViewFromObject(View view, Object o) {
return o.getClass()==view.getClass();
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
Button button = new Button(container.getContext());
ViewGroup.LayoutParams params = new ActionBar.LayoutParams(-1,-1);
button.setLayoutParams(params);
button.setText(String.valueOf(position));
container.addView(button);
return button;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((Button)object);
}
}
我的活动:
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(new MyPagerAdapter());
}
}
3条答案
按热度按时间weylhg0b1#
下面是完整的代码:
xml布局:
我的寻呼机适配器类:
主要活动:
你会看到按钮是全屏的。为了避免这种情况,你需要创建一些布局(如线性布局),并添加按钮到该布局。
示例:
n6lpvg4x2#
如果你想在页面中展开视图,你必须实现两个方法。instantiateItem和destroyItem
简单地说
可扩展标记语言
jdzmm42g3#
在这里,我发布了
TabLayout
与ViewPager
之间的ViewPagerAdapter
如何使用
ViewPagerAdapter
。