Изменение количества ViewPager - PullRequest
6 голосов
/ 21 февраля 2012

Как разблокировать возможность перехода на новую страницу после нажатия кнопки на предыдущей странице?

В настоящее время у меня есть 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;

Есть ли способ изменить:

public int getCount() {
        return 3; 
    }

Как «setCount ()», а затем поместить его в // * некоторый код * //, чтобы увеличить количество слайдов?

Будет добавление

instantiateItem(collection,4);

работаешь где-то работаешь?

Спасибо

Ответы [ 2 ]

6 голосов
/ 21 февраля 2012

Вот как я решил эту проблему.Чтобы уточнить, как вы нажимаете кнопку и получаете больше страниц, на которые вы можете перейти.Я сделал:

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);
        }
}); 

Я добавил еще один случай, чтобы облегчить новый элемент,После этого, когда я нажимаю кнопку, мой страничный адаптер расширяется до 3 видов вместо 2, и новым случаем будет новый вид.

2 голосов
/ 21 февраля 2012

getCount по умолчанию возвращает количество дочерних представлений вашего ViewPager. Делая pager.add(layout_item), вы можете добавить новый элемент в пейджер (конечно, сначала вы должны его где-то надуть). getCount автоматически настроится.

...