更改ViewPager的计数

d.m*_*mc2 6 android android-viewpager

单击上一页上的按钮后,如何解锁滑动到新页面的能力?

目前我有一个PagerAdapter.下面的代码实例化该项目.在getCount()中,返回值3,因此生成3张幻灯片.我想知道是否有办法只有3个视图,但点击一个按钮后,解锁第4个视图,你现在可以滑到?

@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;
Run Code Online (Sandbox Code Playgroud)

有没有办法改变:

public int getCount() {
        return 3; 
    }
Run Code Online (Sandbox Code Playgroud)

就像"setCount()"然后将它放在//*某些代码*//以增加幻灯片的数量?

会补充

instantiateItem(collection,4);
Run Code Online (Sandbox Code Playgroud)

在哪里工作?

谢谢,

d.m*_*mc2 6

这就是我解决这个问题的方法.为了澄清,您如何单击按钮并获得可以滚动到的更多页面.我做了:

private int NUM_VIEWS = 2;

public void setN(int N) {
    this.NUM_VIEWS = N;
}
Run Code Online (Sandbox Code Playgroud)

然后我改变了一条重要的路线.

@Override
public int getCount() {
    return NUM_VIEWS;
}
Run Code Online (Sandbox Code Playgroud)

我的clickListener是

button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v1) {
         myAdapter.setN(3);
         myPager.setCurrentItem(2);
        }
}); 
Run Code Online (Sandbox Code Playgroud)

我添加了另一个案例来促进新项目.之后当我单击按钮时,我的pageadapter将扩展为3个视图而不是2个视图,新视图将是新视图.