ホームページ  >  記事  >  ウェブフロントエンド  >  ViewPager の読み込みと削除 Pages_html/css_WEB-ITnose

ViewPager の読み込みと削除 Pages_html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-24 11:47:421282ブラウズ

今日は、カルーセル イメージ広告を作成するときに ViewPager を使用し、スライド時のページの読み込みと削除について調べました。

PagerAdapter には destroyItem メソッドと instantiateItem メソッドがあり、前者はページの削除に使用され、後者はページの読み込みに使用されます。


【注意】 現在のページがページ 0 の場合、プログラムは同様に、現在のページが views.size() (ViewPager に読み込まれたビューの数) の場合、instantiateItem メソッドを呼び出しません。 - 1. instantiateItem メソッドは呼び出されません。


観察用に簡単な ViewPager デモ (ナビゲーション ページなど) を作成し、Logcat を使用して情報を出力できます。

(ナビゲーション ページの書き方がわからない場合は、ViewPager を読んでナビゲーション ページを実装してください)

destroyItem メソッドで出力される情報:

Log.d("MainActivity", "Remove page" + 位置 );

instantiateItem メソッドで出力される情報:

Log.d("MainActivity", "Loading page" + Position);

onPageSelected で出力される情報:

Log.d("MainActivity " , "現在選択されているページ" + arg0);


次に、ナビゲーション ページを左から右に、右から左にスライドします (注: 合計 5 ページあります):

情報の印刷:

03-22 15:22:45.713: D/MainActivity(4835): 加载页面 003-22 15:22:45.713: D/MainActivity(4835): 加载页面 103-22 15:22:48.768: D/MainActivity(4835): 当前选择页面 103-22 15:22:49.408: D/MainActivity(4835): 加载页面 203-22 15:22:51.558: D/MainActivity(4835): 当前选择页面 203-22 15:22:52.198: D/MainActivity(4835): 移除页面 003-22 15:22:52.203: D/MainActivity(4835): 加载页面 303-22 15:22:53.988: D/MainActivity(4835): 当前选择页面 303-22 15:22:54.508: D/MainActivity(4835): 移除页面 103-22 15:22:54.508: D/MainActivity(4835): 加载页面 403-22 15:22:55.578: D/MainActivity(4835): 当前选择页面 403-22 15:22:55.928: D/MainActivity(4835): 移除页面 203-22 15:22:58.958: D/MainActivity(4835): 当前选择页面 303-22 15:22:59.503: D/MainActivity(4835): 加载页面 203-22 15:23:01.288: D/MainActivity(4835): 当前选择页面 203-22 15:23:01.928: D/MainActivity(4835): 加载页面 103-22 15:23:01.928: D/MainActivity(4835): 移除页面 403-22 15:23:02.613: D/MainActivity(4835): 当前选择页面 103-22 15:23:03.243: D/MainActivity(4835): 加载页面 003-22 15:23:03.248: D/MainActivity(4835): 移除页面 303-22 15:23:05.138: D/MainActivity(4835): 当前选择页面 003-22 15:23:05.773: D/MainActivity(4835): 移除页面 2

  • プログラムに入ると


  • プログラムに入ると、表示するページ番号0がロードされ、次にページ番号1がプリロードされ、instantiateItemメソッドが2回呼ばれました。


    当然、最初に入るときにそれを 2 回呼び出す必要があります。最初に自分の画像をロードし、次に次の画像をロードする必要があります。

  • ページ番号 1 にスライドします

  • このとき、もちろんページ番号 2 がプリロードされています。


  • 2ページにスライド

  • ページ0を削除してページ3をロード


  • 3ページにスライド

  • ページ番号 1 を削除して、ページ番号 4 をロードします


  • ページ番号 4 にスライドします

  • ページ番号 2 は最後まで到達しているので削除し、プリロードしないでください。


    転送ダイヤルが完了しました。

    この時点で、一般的なルールも確認できます

    スライドするたびに、現在のページに隣接する 2 つのページが保持され (アンロードされたページはプリロードされ、ロードされたページは保存されます)、隣接するページは削除できません。ただし、ロードされたページは、一度に 3 ページしか存在しないことを意味します。

    逆トグルにも同じ原理が当てはまります。ここで逆トグルの概略図を描く必要はありません。

    このスライド機能を理解すると、ViewPager をより柔軟に使用できるようになります。

    さて、今日はこれについて話しましょう 何か間違っていることがあれば、批判して修正してください!



    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。