1

flipperviewAndroidのアニメーションに問題があり、flipperview水平方向のビュー アニメーションを使用しています。arraylistサイズは 14 ですが、getview は 3 回しか呼び出してgetview()いません。

コードは次のとおりです。

@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() メソッドが呼び出されなかった後に getview カウントが 3 に達したときです。

log

position 0
position 1
position 2

カウントが増えません。助けてください。

4

1 に答える 1

0

Try

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

Your code puts the information only when the convertView is null

(注: ここではアイテムの親がどうなるか (ViewGroup の親引数) を知っているので、inflate(id, null); ではなく inflate(id, parent, false); を使用してこれをインフレータに伝える必要があります。 inflate(id, null)) を呼び出すことはほとんどありません

詳細を参照してください。

レイアウト インフレートのドキュメント

于 2013-11-12T00:21:22.730 に答える