私も同様の問題がありました。私はリスナーを使用しました。あなたはそれがラグだっバックアップするために2つのページのバックスワイプしたときのように来て、リストをロードするために、数ミリ秒かかる場合はそれでも、私は経験を改善し、このようなもの....
viewpager.setOnPageChangeListener(new OnPageChangeListener() {
int positionCurrent;
boolean dontLoadList;
@Override
public void onPageScrollStateChanged(int state) {
if(state == 0){ // the viewpager is idle as swipping ended
new Handler().postDelayed(new Runnable() {
public void run() {
if(!dontLoadList){
//async thread code to execute loading the list...
}
}
},200);
}
}
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
positionCurrent = position;
if(positionOffset == 0 && positionOffsetPixels == 0) // the offset is zero when the swiping ends{
dontLoadList = false;
}
else
dontLoadList = true; // To avoid loading content for list after swiping the pager.
}
}
をしましたviewpagerに補足します.Upの面では、間違ったスワイプ・エクスペリエンスを与えるのではなくてOKです。そのため、リストをロードする前にスレッドで400ミリ秒待ってから、ユーザーがビューページのコンテンツを見るためにすばやくスワイプしようとしています...
私はsetAdapter呼び出しをコメントしていて、よりスムーズでした。 onPageSelectedは良いアイデアですが、私はフラグメント番号の現在のインスタンスを取得する位置番号を取得します – metinkale38
@ metinkale38それはあなたが使用するアダプタのタイプに依存し、この質問のトップ2の回答を参照してくださいhttp://stackoverflow.com/question/7379165/update-data-in-listfragment-part-of-viewpager?answertab = votes#tab-top – Luksprog
ありがとう、OnPageChangeListenerはいいアイデアです。お互いの後に。あなたのリンクで私はこのリンクを見つけました:http://tamsler.blogspot.nl/2011/11/android-viewpager-and-fragments-part-ii.htmlそして私は2番目のメソッドを使ってFragmentインスタンスを取得しました – metinkale38