ViewPager с FragmentPageAdater не работает должным образом?

У меня есть действие, которое расширяет ActionBarActivity, и у действия есть следующий код в xml.

<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" />

У него есть только ViewPager. Я хочу отобразить изображение со списком параметров, поэтому я решил создать фрагмент с макетом, который я хочу отображать как часть ViewPager.

Я создал адаптер, расширяющий FragmentPagerAdapter следующим образом:

частный класс CategoryViewPagerAdapter расширяет FragmentStatePagerAdapter {

public CategoryViewPagerAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int currentPosition) {

            return FullScreenFragment.newInstance(fragments
                    .get(currentPosition));
        }

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return fragments.size();
        }

    }

Где фрагменты - это список строк.

Он загружает изображения, и Swipes также работают, однако показанное изображение имеет заголовок, который относится к предыдущему изображению. Этот заголовок в основном устанавливается в ActionBar для этого фрагмента.

В моем классе фрагментов я сделал это:

parentActivity = (ActionBarActivity) getActivity();
        parentActivity.getSupportActionBar().setDisplayOptions(
                ActionBar.DISPLAY_SHOW_CUSTOM);
        parentActivity.getSupportActionBar().setCustomView(
                R.layout.full_screen_action_bar);

А также иногда некоторые компоненты с макетом фрагмента не отображаются при нажатии кнопки внутри фрагмента. Мне нужно найти Id из Activity или Fragment rootView


person virendrao    schedule 22.07.2014    source источник


Ответы (1)


используйте этот метод для обновления панели действий

    vp.setOnPageChangeListener(new OnPageChangeListener()
    {

        @Override
        public void onPageSelected(int arg0)
        {
          //update action bar 

        }

        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2)
        {
            // TODO Auto-generated method stub

        }

        @Override
        public void onPageScrollStateChanged(int arg0)
        {
            // TODO Auto-generated method stub

        }
    });

И для второй проблемы, пожалуйста, дайте больше информации.

person Ratul Ghosh    schedule 22.07.2014
comment
Предположим, у меня есть пять URL-адресов изображений. Итак, я создаю один и тот же фрагмент с пятью экземплярами каждый после одного URL-адреса. он отображает изображение, однако неправильное имя изображения отображается на панели действий, оно отображает изображение предыдущего элемента в списке.... А также, когда я прокручиваю, я хочу, чтобы фрагмент всегда имел исходный вид, а не вид, который изменяется после выполнения действия - person virendrao; 22.07.2014