我有一个显示 GPUImageViews 的 ViewPager。在为每个页面创建实例时,一切看起来都很棒。当我尝试向后滑动以加载上一页时,问题就出现了。这是我的 onCreateView 代码。
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//I store my previous pages in an imageArray variable to prevent application from rendering image over and over again.
temp = imageArray[this.index]; //temp is a GPUImageView; assume initialized
if (temp.getParent() != null) {
((ViewGroup) temp.getParent()).removeView(temp);
}
temp.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
return temp;
}
当我添加removeView()
视图寻呼机时,总是返回黑屏。我尝试关闭,removeView()
但它总是给我错误“子视图有现有的父...首先删除父视图。”
编辑:更具体地说,我添加了我的 onCreate()、init() 和 renderImage() 函数。顺便说一句,这是一个片段,对于我的 PagerAdapter,我正在使用 FragmentPagerAdapter
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActivity().findViewById(R.id.saveBtn).setOnClickListener(this);
this.init();
this.renderImage();
}
private void init() {
temp = new GPUImageView(getActivity());
this.img = new GPUImageView(getActivity()); //the original image
this.img.setImage(imgUri);
}
private void renderImage() {
temp = this.img;
temp.setFilter(Filter.setFilter(getActivity(), this.filterPosition));
temp.requestRender();
imageArray[this.filterPosition] = temp;
}
我尝试调试以查看我的应用程序是如何工作的......似乎在创建新实例时,onCreate() 将始终被调用,然后是 onCreateView()。根据本指南的生命周期,我认为只会重复调用 onCreateView()。