0
我已经使用查看分页器来显示我的应用程序中的滑动图像。代码工作得很好,但是当用户导航到其他分段,并且当返回到前一个分段时,图像不显示。在视图中只有当应用程序启动时才显示,否则它不可见。查看分页显示图像只有一次
代码
public class HomeScreen extends BaseFragment {
ViewPager viewPager;
Fragment fragment;
private int[] images = {R.drawable.ic_launcher, R.drawable.nav_bg};
private FragmentManager fragmentManager;
private Timer swipeTimer;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.home_screen, container, false);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
viewPager = (ViewPager) getActivity().findViewById(R.id.viewPager);
fragmentManager = getFragmentManager();
viewPager.setAdapter(new pagerAdapter(fragmentManager, images));
final Handler handler = new Handler();
final Runnable update = new Runnable() {
@Override
public void run() {
for (int i = 0; i < images.length; i++) {
viewPager.setCurrentItem(i);
}
}
};
swipeTimer = new Timer();
swipeTimer.schedule(new TimerTask() {
@Override
public void run() {
handler.post(update);
}
}, 1000, 5000);
}
public class pagerAdapter extends FragmentStatePagerAdapter {
private int[] images;
public pagerAdapter(FragmentManager fm, int[] images) {
super(fm);
this.images = images;
}
@Override
public Fragment getItem(int i) {
fragment = ImageSwitcher.newInstance(images[i]);
return fragment;
}
@Override
public int getCount() {
return images.length;
}
}
}
片段代码
public class ImageSwitcher extends BaseFragment {
private ImageView imageView;
public static final ImageSwitcher newInstance(int image) {
ImageSwitcher imageSwitcher = new ImageSwitcher();
Bundle bundle = new Bundle();
bundle.putInt("image", image);
imageSwitcher.setArguments(bundle);
return imageSwitcher;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.image_switcher_fragment, container, false);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initialize();
}
private void initialize() {
imageView = (ImageView) view.findViewById(R.id.image_switcher);
imageView.setBackgroundResource(getArguments().getInt("image"));
}
}
呼叫'初始化()''中onCreateView'初始化'view'后。 – mmlooloo 2014-10-08 12:33:47
请编写代码,以便我可以打勾 – user3917131 2014-10-08 12:59:31