Androidでタブレイアウトとページャを使って4ページ切り替えてます
こんな感じ
Java
1 // xmlからTabLayoutの取得 2 TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); 3 // xmlからViewPagerを取得 4 ViewPager viewPager = (ViewPager) findViewById(R.id.pager); 5 6 7 //4page add 8 //Adding the tabs using addTab() method 9 tabLayout.addTab(tabLayout.newTab()); 10 tabLayout.addTab(tabLayout.newTab()); 11 tabLayout.addTab(tabLayout.newTab()); 12 tabLayout.addTab(tabLayout.newTab()); 13 14 // 表示Pageに必要な項目を設定 15 final Pager adapter = new Pager(getSupportFragmentManager(), tabLayout.getTabCount()); 16 17 // ViewPagerにページを設定 18 viewPager.setAdapter(adapter); 19 20 // ViewPagerをTabLayoutを設定 21 tabLayout.setupWithViewPager(viewPager); 22 23 24 viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener(){ 25 @Override 26 public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 27 } 28 29 @Override 30 public void onPageSelected(int position) { 31 adapter.selectpage(position); 32 } 33 34 35 @Override 36 public void onPageScrollStateChanged(int state) { 37 } 38 });
ここで実際の末端のページの描画はクラスを4クラスFragmentで作って行っているのですがこの描画が
ページ1−>ページ2ー>ページ1
の切り替えと
ページ1−>ページ3ー>ページ1
の切り替えでページ1の表示が変わります(とくに描画コードないのに)
具体的に言うとページ1−>ページ2ー>ページ1のとき描画にゴミが残るのです。
これから再描画をおこなう仕組みがどうも違うらしいことはわかっったのでしらべると
ページ1−>ページ3ー>ページ1の時だけ
ページ1のFragmentのOnCreateViewが呼ばれるのはわかったのですが
OnCreateViewを
ページ1−>ページ2ー>ページ1
のときも呼ぶようにするにはどうしたらいいのでしょうか?
それとも面倒なことは考えずに
FragmentのViewを全部削除して入れなおせば良いのでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。