0

前のフラグメントに戻るかスワイプすると常にリロードされる場合、タブviewpagerindicatorにエラーがあります...

これは私のコードフラグメントです

package com.droidersuin.project.viewpagerindicator;


import com.droidersuin.project.app.ContentActivity;

import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

public class ViewAdapter extends FragmentPagerAdapter{

    private Context _context;
    String[] page_titles;

    public ViewAdapter(Context context, FragmentManager fm, String[] page_title){
        super(fm);
        _context = context;
        this.page_titles = page_title;
    }

    @Override
    public Fragment getItem(int position) {
        // TODO Auto-generated method stub

        Fragment f = new Fragment();

    switch(position){
    case 0:
        f = ContentActivity.newInstance(_context);
        break;

    case 1:
        f = ContentActivity.newInstance(_context);
        break;
    case 2:
        f = ContentActivity.newInstance(_context);
        break;

    }

    return f;
}

@Override
public int getCount() {
    // TODO Auto-generated method stub
    return page_titles.length;
}

    public CharSequence getPageTitle(int position) {
        return page_titles[position];
    }



}

フラグメント 0 からフラグメント インデックス 1 にスワイプし、インデックス 0 に戻ると、常にコンテンツがリロードされます。前のフラグメントに戻ると再びリロードされないようにしたいですか? どのように

ありがとう...私の英語でごめんなさい..

4

2 に答える 2

4

次のように viewPager の offScreenPageLimit を設定してみてください。

 mPager.setOffscreenPageLimit(3); 

3 つのページがメモリに保持され、その後、リロードが開始されます。

于 2013-07-31T05:53:11.387 に答える
0

getItemId メソッドを次のようにオーバーライドする必要があると思います。

@Override
public long getItemId(int position) {
    return position;
}

FragmentPagerAdapter のソース コードを確認すると、instantiateItem メソッドでこれを行っていることがわかります

final long itemId = getItemId(position);
    // Do we already have this fragment?
    String name = makeFragmentName(container.getId(), itemId);
    Fragment fragment = mFragmentManager.findFragmentByTag(name);

FragmentPagerAdapter は、アイテム ID を使用して、フラグメントが既にインスタンス化されているかどうかを識別します。

https://github.com/android/platform_frameworks_support/blob/master/v4/java/android/support/v4/app/FragmentPagerAdapter.java

于 2013-07-31T06:01:35.010 に答える