뷰 페이저에 3 개의 조각을로드하는 FragmentActivity가 있습니다. 새로 설치 할 때마다 두 번째 조각이로드되지만 곧 검정으로 바뀝니다. 이 후 두 번째 조각이 다시로드되고보기를 스 와이프하는 중에도 제대로 작동합니다. 따라서 처음으로로드 될 때만 검은 색으로 변합니다. 나는 이것을 FragmentPagerAdapter와 FragmentStatePagerAdapter를 사용하여 구현했으나 똑같이 동작합니다. 이것은 KitKat과 Lollipop에서만 발생합니다. 모든 단편은 간단한 레이아웃을 가지며 중첩 된 단편은 없습니다.ViewPager에서 처음으로로드 할 때 검은 색 조각
public class IntroActivity extends FragmentActivity {
private List<Fragment> listFragments;
private PagerAdapter pagerAdapterWelcome;
private OnboardingPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.intro_pager);
viewPager = (OnboardingPager) findViewById(R.id.viewPager);
//Initializing the List
listFragments = new ArrayList<Fragment>();
//initializing the fragments
WelcomeFragment welcomeFragment = new WelcomeFragment();
TicketScanFragment ticketOptionScanFragment = new TicketScanFragment();
ScannerFragment scanFragment = new ScannerFragment();
//Adding Fragments to List
listFragments.add(welcomeFragment);
listFragments.add(ticketOptionScanFragment);
listFragments.add(scanFragment);
//initializing PagerAdapter
pagerAdapterWelcome = new PagerAdapter(getSupportFragmentManager(), listFragments);
viewPager.setAdapter(pagerAdapterWelcome);
final TabLayout tabLayout = (TabLayout) findViewById(R.id.tabDots);
tabLayout.setupWithViewPager(viewPager, true);
}
어댑터 :
public class PagerAdapter extends FragmentStatePagerAdapter {
private List<Fragment> listFragments;
public PagerAdapter(FragmentManager fm, List<Fragment> listFragments) {
super(fm);
this.listFragments = listFragments;
}
@Override
public Fragment getItem(int i) {
return listFragments.get(i);
}
@Override
public int getCount() {
return listFragments.size();
}
}
이것은 setCurrentItem을 수행하지 않을 경우에만 작동합니다. 나는 이것을 사용하려고 시도하고 또한 위치 1이 시작할 때 보여 지도록한다. –