Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Android Новый топик    Ответить
 ViewPager работает не корректно.  [new]
Kzimir
Member

Откуда:
Сообщений: 1
Ситуация такая - есть фрагмент fragmentBoss, в нем ViewPager с 3 страницами(фрагментами). захожу в фрагмент fragmentBoss - и ViewPager отображает фрагменты как надо, затем выхожу и захожу на другой фрагмент (Settings), и захожу опять в фрагмент fragmentBoss с ViewPager и страницы пустые, обновляются только после перелистывания.


 private FragmentManager fragmentManager;
        private android.support.v4.app.FragmentTransaction transaction1;

      protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

        fragmentManager=getSupportFragmentManager();
         fragmentBoss= new FragmentBoss();
            fragmentPoiskaIStarta = new FragmentPoiskaIStarta();
            fragmentSettings = new FragmentSettings();
    } 


Тут метод, посредством которого переходим по фрагментам:

(fragmentBoss,Settings)
     transaction1 = fragmentManager.beginTransaction();
        switch (TipAnimacii) {

            case 1: {
                transaction1.replace(R.id.BigFragment, fragmentPoiskaIStarta);
                transaction1.commit();


                mTextMessage.setText(R.string.title_home);
                anim = AnimationUtils.loadAnimation(getApplication(), R.anim.prozrahnost);
                mTextMessage.startAnimation(anim);

                break;
            }
            case 2: {
                         transaction1.replace(R.id.BigFragment, fragmentBoss);
                         transaction1.commit();

                mTextMessage.setText(R.string.title_dashboard);
                anim = AnimationUtils.loadAnimation(getApplication(), R.anim.prozrahnost);
                mTextMessage.startAnimation(anim);

                break;
            }
            case 3: {
                transaction1.replace(R.id.BigFragment, fragmentSettings);
                transaction1.commit();

                mTextMessage.setText(R.string.title_notifications);
                anim = AnimationUtils.loadAnimation(getApplication(), R.anim.prozrahnost);
                mTextMessage.startAnimation(anim);

                break;
            }
}


Класс FragmentBoss:

 public class FragmentBoss extends Fragment {


    public static FragmentBoss newInstance() {
        FragmentBoss fragment = new FragmentBoss();
        Bundle args = new Bundle();

        fragment.setArguments(args);
        return fragment;
    }


    private TabLayout tabLayout;
    private ViewPager viewPager;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_fragment_boss, container, false);
         viewPager =(ViewPager)v.findViewById(R.id.ViewPager);


        TablayautAdapter tablayautAdapterv=new TablayautAdapter(getActivity().getSupportFragmentManager());
        viewPager.setAdapter(tablayautAdapterv);


        tabLayout=(TabLayout)v.findViewById(R.id.tablayout);
        tabLayout.setupWithViewPager(viewPager);

        return v;
    }


Клфсс TablayautAdapter:

package com.example.kaz.io.Adapter;


import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.util.Log;

import com.example.kaz.io.Fragment.FragmentControl;
import com.example.kaz.io.Fragment.FragmentControlCsene;

public class TablayautAdapter extends FragmentStatePagerAdapter {
    private String[] tabs;

    public TablayautAdapter(FragmentManager fm) {
        super(fm);
        tabs=new String[]{
                "TAB1",
                "TAB2",
                "TAB3",
                "TAB4"  };
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return tabs[position];
    }

    @Override
    public Fragment getItem(int position) {
        switch (position){
            case 0:

               return FragmentControl.newInstance();
            case 1:

                return FragmentControlCsene.newInstance();
            case 2:

                return FragmentControlCsene.newInstance();
            case 3:

                return FragmentControl.newInstance();          }

        return null;
    }

    @Override
    public int getCount() {
        return tabs.length;
    }
}
1 авг 17, 12:49    [20691241]     Ответить | Цитировать Сообщить модератору
Все форумы / Android Ответить