Android flipview适配器数量没有增加

时间:2013-10-28 14:21:18

标签: android viewflipper baseadapter

我在Android中的flipperview动画中遇到问题,使用flipperview横向视图动画,arraylist尺寸为14,但getview仅在getview()之后调用3次不打电话。

代码是:

@SuppressLint({ "NewApi", "SetJavaScriptEnabled" })
public class DetailsActivity extends Activity {

    private FlipViewController flipView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        flipView = new FlipViewController(this, FlipViewController.HORIZONTAL);

        flipView.setAdapter(new BaseAdapter() {

            private WebView mWebview;
            ProgressDialog progressDialog = null;
            List<EventUtil> mEventUtil= GlobalValues.getInstance().eventUtils;
            private int repeatCount = 1;

            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                View layout = convertView;
                LayoutInflater inflater= LayoutInflater.from(EventDetailsActivity.this);

                if (convertView == null) {
                    layout = inflater.inflate(R.layout.pf_fragment_event_desc, null);

                    progressDialog = Constants.getInstance().loadingDialog(getParent());

                    EventUtil eventDescEntity = mEventUtil.get(position);

                    Log.d("ARRAYSIZE", mEventUtil.size()+"");
                    mWebview = (WebView)layout.findViewById(R.id.event_detail_web_view);
                    mWebview.getSettings().setJavaScriptEnabled(true);
                    getJsonObject(eventDescEntity.getEvent_id(),mWebview);

                    Log.d("POSISSION", position+"");
                }

                return layout;
            }

            @Override
            public long getItemId(int position) {

                return position;
            }

            @Override
            public Object getItem(int position) {

                return position;
            }

            @Override
            public int getCount() {

                return mEventUtil.size() * repeatCount;
            }
        });

        setContentView(flipView);
    }

    @Override
    protected void onResume() {

        super.onResume();
        flipView.onResume();
    }

    @Override
    protected void onPause() {
        super.onPause();
        flipView.onPause();
    }
}

它运行正常,问题是getView计数达到3后getView()方法没有调用

log

position 0
position 1
position 2

计数并没有增加我的预期。

1 个答案:

答案 0 :(得分:0)

尝试

if (convertView == null) {
    layout = inflater.inflate(R.layout.pf_fragment_event_desc, parent, false);
}

您的代码仅在convertView为空时放置信息

(注意:你在这里知道父项的内容是什么(ViewGroup父参数)所以你应该通过使用inflate(id,parent,false)告诉inflater;而不是inflate(id,null); - 你几乎不应该调用inflate(id,null))

详见;

Layout inflate documentation