为什么我的 ViewPager 这么慢?

Why my ViewPager is so slow?

在 dialogFragment 中,我有两个页面的 viewPager。每个页面都包含一个自定义适配器。一个带有微调器列表的适配器,另一个带有 EditTexts 列表的适配器。 ViewPager 可以很好地添加适配器。

public class PageFragment extends Fragment {
    ...
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.pagefragment_newprod, null);

    LinearLayout ll=(LinearLayout) view.findViewById(R.id.tvLL);
    ListView listView=new ListView(getActivity());
    ll.addView(listView);

    if (pageNumber==0){
        dropDownAdapter=new DropDownAdapter(getActivity(), fillListAdapter);
        listView.setAdapter(dropDownAdapter);
    } else if (pageNumber==1){
        boxAdapter = new BoxAdapter(getActivity(), filledFields);
        listView.setAdapter(boxAdapter);
    }
    return view;
    }
}

但它的工作速度很慢!当前适配器(我的意思是在当前页面)每毫秒创建一次视图!看看这个:

public class BoxAdapter extends BaseAdapter{
 ...
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    if (view == null) {
        view = lInflater.inflate(R.layout.addproduct_item, parent, false);
    }
    Log.d(LOG_TAG, "====As I said every milisecond...======");
    EditText editText = (EditText) view.findViewById(R.id.addProductEditText);
    editText.setText(p.value);
    return view;
    }
}   

即使我聚焦 EditText,这个 Log.d 每毫秒都会写消息! 除此之外,下一页的适配器也可以工作。我在另一个适配器 getView 上有其他 Log.d,当我使用不同页面的适配器时它可以工作!

请帮助我了解哪里出了问题...(

问题已经在评论中解决了。 OP 的解决方案显然是删除复杂的片段及其适配器。但是,我在带有 ViewPager 的选项卡布局中也有复杂的片段,以下解决方案解决了缓慢的分页问题:

viewPager.setOffscreenPageLimit(2);

2会在内存中与当前页面保持两页距离。这对我来说已经足够了,因为我有三个选项卡。不过,要小心不要在内存中保留太多页面。见 documentation.