3

私は android.support.v4.view.ViewPager Library の PagerAdapter で ViewPager を使用しています。現在のアイテムもゼロの場合、リストの場合はゼロのアイテムを削除したいと考えています。エラーなしで削除できますが、画面がすぐに更新されません。アイテム 2 に移動して戻ってくると、アイテム 0 が更新されます。誰でもこの問題を解決できますか?

以下の削除機能を使用しています。

public View removePage(int position) {
        if ((position < 0) || (position >= getSize()) || (getSize()<=1)) {
            return null;
        } else {
            if (position == mPager.getCurrentItem()) {
                if(position == (getSize()-1)) {
                    mPager.setCurrentItem(position-1);
                } else if (position == 0){
                    mPager.setCurrentItem(1);
                }
            }
            View tempView = myPagerAdapter.mListViews.remove(position);
            myPagerAdapter.notifyDataSetChanged();
            return tempView;
        }
    }

そして、問題は関数呼び出しで発生したはずだと思います

setCurrentItemInternal(newCurrItem, false, true);

ViewPager.java で newCurrItem のパラメータを「0」、mCurItem のパラメータを「0」にします。さらに、問題は completeScroll(); のいずれかにあるはずです。または scrollTo(destX, 0); setCurrentItemInternal() の最後に;

4

1 に答える 1

0

http://developer.android.com/reference/android/support/v4/view/ViewPager.html#setOffscreenPageLimit(int )から

public void setOffscreenPageLimit (整数制限)

アイドル状態でビュー階層の現在のページの両側に保持するページ数を設定します。この制限を超えるページは、必要に応じてアダプターから再作成されます。

これは最適化として提供されます。サポートする必要があるページ数が事前にわかっている場合、またはページに遅延読み込みメカニズムを配置している場合は、この設定を微調整すると、ページング アニメーションとインタラクションの滑らかさが感じられるというメリットがあります。一度にアクティブにできるページの数が少ない場合 (3 ~ 4 ページ)、ユーザーがページを前後に移動するときに、新しく作成されたビュー サブツリーのレイアウトに費やす時間が少なくなります。

特にページのレイアウトが複雑な場合は、この制限を低く抑える必要があります。この設定のデフォルトは 1 です。

パラメータ limit アイドル状態で画面外に保持されるページの数。

OffScreenPageLimitをゼロに設定してから、アイテムを削除します。OffScreenPageLimitを 1 (デフォルト) に再度設定できます。

于 2012-11-22T15:55:21.583 に答える