Фрагмент еще не был прикреплен после второго поворота - PullRequest
0 голосов
/ 26 апреля 2018

Я пытаюсь создать макет для приложения, которое будет отображать фрагменты с помощью ViewPager в портретной ориентации и рядом в альбомном режиме. Поэтому я создал собственный макет для ландшафтного режима, там есть фрагменты и работает, но только когда я поворачиваю его один раз. Когда я поворачиваю его обратно в портретный режим и снова в альбомный режим, приложение вылетает, и logcat выдает ошибку: фрагмент еще не был прикреплен.

MainActivity.java

    public class MainActivity extends AppCompatActivity {
    private static final String TAG="MainActivity";
    private SectionsPageAdapter mSectionsPageAdapter;
    private ViewPager mViewPager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.d(TAG,"onCreate: Starging.");


        if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {

            mSectionsPageAdapter = new SectionsPageAdapter(getSupportFragmentManager());
            mViewPager = (ViewPager) findViewById(R.id.container);
            setupViewPager(mViewPager);
            TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
            tabLayout.setupWithViewPager(mViewPager);
        }
    }
    private void setupViewPager(ViewPager viewPager){
        SectionsPageAdapter adapter = new SectionsPageAdapter(getSupportFragmentManager());
        adapter.addFragment(new Fragment1(),"Zakladka1");
        adapter.addFragment(new Fragment2(),"Zakladka2");
        viewPager.setAdapter(adapter);

    }
}

Один из фрагментов:

    public class Tab_Sun extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        if (!isAdded()){return null;} ;


        View rootView = inflater.inflate(R.layout.tabsun, container, false);
        //AstroCalculator.Location pozycja;
        //pozycja.setLatitude();


        return rootView;
    }
}

Полное приложение: https://www.dropbox.com/s/0zcu3y7ej1fa9on/MyApplication3.zip?dl=0

...