私は3つのタブでタブレイアウトに取り組んできました。View Pagerで中間フラグメントを更新できません。
私の問題は です。ページ間で2番目のタブのスワイプを更新することができません。
私はタブ1から2にスワイプし、3番目はgetItem(int位置)で呼び出されます。同様に、3番目のタブから2番目にスワイプされているフラグメントもあります。
デフォルトのビューページのgetOffscreenPageLimitはです。私はそれをゼロカウントに設定することさえできませんでした。
getItemでは、最初は位置が1ですが、ページをスワイプすると、 は位置0と2だけを呼び出します。 1は決して呼び出されません。
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
これは、これは私のViewPager
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
public void refreshFragment(int position) {
mFragmentList.get(position).onResume();
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
addOnPageChangeListenerである私のViewPagerSetUp
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new
ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new InvitedFragment(), "Invited");
adapter.addFragment(new InterestedFragment(), "Interested");
adapter.addFragment(new AttendingFragment(), "Attending");
viewPager.setAdapter(adapter);
}
ある一つの選択肢だったが、私はあまりにもpageChangelistenerを使用して、それを更新できませんでした。
どうすれば画面外のページを修正できますか? すべてのページスワイプのすべてのタブを更新するにはどうすればよいですか?
ありがとうございます。
setUserVisibleHintは非常に最初から実行されるため、** isResumed **も追加する必要がありました。 提案のおかげでPradeepに感謝します。 場合(isVisibleToUser && isResumed()){// 行うあなた詰め込む } – rzenks
'場合(isVisibleToUser && isResumedは())'あなたはあなたの答えを編集することができ、私の一日保存@PradeepGupta –