如何在单击上一页上的按钮后解锁滑动到新页面的能力?
目前我有一个PagerAdapter。下面的代码实例化该项。在getCount()中,返回值3,因此生成3张幻灯片。我想知道是否有办法只有3个视图,但点击一个按钮后,解锁你现在可以滑到的第四个视图?
@Override
public Object instantiateItem(final View collection, int position) {
final LayoutInflater inflater = (LayoutInflater) TViewPager.this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
TextView tv = new TextView(TViewPager.this);
//Describe the separate layouts of views
switch (position) {
case 1:
View v1 = inflater.inflate(R.layout.expander2, null, false);
((ViewPager) collection).addView(v1, 0);
final Button button = (Button) findViewById(R.id.button_click_me);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v1) {
Toast.makeText(getBaseContext(), "+1", Toast.LENGTH_LONG).show();
//*Some code*//
}
});
return v1;
有没有办法改变:
public int getCount() {
return 3;
}
与“setCount()”类似,然后将其放在// *某些代码* //以增加幻灯片的数量?
会添加
instantiateItem(collection,4);
在某处工作?
谢谢,
答案 0 :(得分:6)
以下是我解决这个问题的方法。为了澄清,您如何单击按钮并获得可以滚动到的更多页面。我做了:
private int NUM_VIEWS = 2;
public void setN(int N) {
this.NUM_VIEWS = N;
}
然后我改变了一条重要的路线。
@Override
public int getCount() {
return NUM_VIEWS;
}
我的clickListener是
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v1) {
myAdapter.setN(3);
myPager.setCurrentItem(2);
}
});
我添加了另一个案例以方便新项目。之后当我点击按钮时,我的pageadapter将扩展为3个视图而不是2个,新的视图将是新视图。
答案 1 :(得分:2)
getCount
会返回ViewPager的子视图数。通过执行pager.add(layout_item)
,您可以向寻呼机添加新项目(当然,您必须先将其充气到某处)。 getCount
会自动调整。