【问题标题】:Android ViewPager displays white screenAndroid ViewPager 显示白屏
【发布时间】:2017-08-08 20:54:43
【问题描述】:

我正在尝试使用 FragmentStatePagerAdapter 在 Fragment 内创建 VeiwPager。 它显示第一个片段,但滚动到第二个片段后只有白色片段(即使滚动回第一个片段) 我尝试使用 PagerAdapter 并设置没有片段的图片,但结果是一样的。

内存有问题吗?我能做些什么来解决它?

主页片段(包含 ViewPager):

private void initSlideShow(View view){
    VPImageSlider = (ViewPager16by9) view.findViewById(R.id.VPImageSlider);
    sliderDotsPanel = (LinearLayout) view.findViewById(R.id.SliderDots);
    VPImageSliderAdapter vpImageSliderAdapter = new VPImageSliderAdapter(getFragmentManager());

    vpImageSliderAdapter.addSlide(R.drawable.dc_slide_1);
    vpImageSliderAdapter.addSlide(R.drawable.dc_slide_2);
    vpImageSliderAdapter.addSlide(R.drawable.dc_slide_3);
    vpImageSliderAdapter.addSlide(R.drawable.dc_slide_4);
    vpImageSliderAdapter.addSlide(R.drawable.dc_slide_5);

    VPImageSlider.setAdapter(vpImageSliderAdapter); 
}

ViewPager 片段:

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import iranelab.samsoft.net.iranelab.Classes.ImageView16by9;
import iranelab.samsoft.net.iranelab.R;


public class ViewPagerFragment extends Fragment {


private static final String ARG_PARAM4 = "imageTest";


private int imageTest;


public ViewPagerFragment() {}


public static ViewPagerFragment newInstance(String imageId, String type, String text,int imageTest) {
    ViewPagerFragment fragment = new ViewPagerFragment();
    Bundle args = new Bundle();
    args.putInt(ARG_PARAM4, imageTest);
    fragment.setArguments(args);
    return fragment;
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (getArguments() != null) {
        imageTest = getArguments().getInt(ARG_PARAM4);
    }
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_view_pager, container, false);
    ImageView16by9 image = (ImageView16by9) view.findViewById(R.id.IVSlide);
    image.setImageResource(imageTest);
    return view;
}

}

ViewPager 适配器:

public class VPImageSliderAdapter extends FragmentStatePagerAdapter {

private int[] slides = {};

public VPImageSliderAdapter(FragmentManager fm){
    super(fm);
}

public void addSlide(int drawable){
    slides = Arrays.copyOf(slides,slides.length+1);
    slides[slides.length-1]=drawable;
}

@Override
public int getCount() {
    return slides.length;
}

@Override
public Fragment getItem(int position) {
    return ViewPagerFragment.newInstance(slides[position]);
}

}

【问题讨论】:

    标签: android android-fragments android-viewpager


    【解决方案1】:

    改变

    VPImageSliderAdapter vpImageSliderAdapter = new VPImageSliderAdapter(getFragmentManager());
    

    VPImageSliderAdapter vpImageSliderAdapter = new VPImageSliderAdapter(getChildFragmentManager());
    

    会有用的

    【讨论】:

      【解决方案2】:

      只需要添加:

      ViewPager.setOffscreenPageLimit(5);
      

      【讨论】:

        猜你喜欢
        • 2014-02-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-13
        • 2013-08-25
        • 1970-01-01
        • 2016-08-03
        • 1970-01-01
        相关资源
        最近更新 更多