3

フラグメント用に次のコードがあります。私はこれを基本的なビューページャーの例からほとんど取り出して、作業中のプロジェクトをテストするためにフラグメントにスラップしました。

ACtionBarSherlockおよびviewPagerIndicatorライブラリを使用しています。以下のフラグメントには、この例では単純なタイトル文字列間をスワイプすることになっているviewPagerが含まれています。

アクティビティでViewPagerとViewPagerIndicatorを使用して例を試しましたが、問題ありません。しかし、2番目に私はそれを断片に入れました。ブーム、黒い画面だけ...エラーなし、黒い画面だけ...膨らんでいるか、レイアウトに間違ってアクセスしている必要があるように感じます...何かアイデアはありますか?

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

public class TestFragment extends SherlockFragment {

    //~Constants----------------------------------------------


    //~Data Fields--------------------------------------------

    //~Constructors--------------------------------------------
    @Override
    public void onCreate(Bundle savedInstanceState) {

        //Setup view
        super.onCreate(savedInstanceState);
        View view = onCreateView(getLayoutInflater(savedInstanceState), null, savedInstanceState);

        ViewPagerAdapter adapter = new ViewPagerAdapter( this.getSherlockActivity() );
        ViewPager pager = 
            (ViewPager)view.findViewById(R.id.free_time_day_pager);
        TitlePageIndicator indicator = 
            (TitlePageIndicator)view.findViewById(R.id.titles);
        pager.setAdapter( adapter );
        indicator.setViewPager( pager );
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.free_time_fragment_layout, null, false);
        return view;
    }

    //~Methods-------------------------------------------------
}
4

2 に答える 2

3

onCreateViewそれは間違っているとは言わないでください。

onCreateViewFragmentMangerは、ライフサイクルを処理するためにによって呼び出されるオーバーライドされたメソッドFragmentです。

private ViewPager mViewPager;
private TitlePagerIndicator mIndicator;

// Called first
@Override
public void onCreate(Bundle savedInstanceState) {
    //Setup view
    super.onCreate(savedInstanceState);
}

// Called second
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.free_time_fragment_layout, null, false);
    return view;
}

// Called third
@Override
public View onViewCreated(View v){
    super.onViewCreated(v);
    mViewPager = (ViewPager) v.findViewById(R.id.free_time_day_pager);
    mIndicator = (TitlePageIndicator)v.findViewById(R.id.titles);

}


public void onActivityCreated(Bundle bdl){
    super.onActivityCreated(bdl);
    ViewPagerAdapter adapter = new ViewPagerAdapter( getSherlockActivity() );
    mViewPager.setAdapter(adapter);
    mIndicator.setViewPager(pager);
}

また、FragmentPagerAdapterを使用している場合は、ViewPagerFragmentを作成するために特別なメソッドが必要であることに注意してください。これは少し注意が必要ですが、この要点を参照してください。

ここFragmentでもライフサイクルについて読んでください。

乾杯

于 2012-08-28T21:11:50.640 に答える
0

これを使って。

compile 'com.android.support:appcompat-v7:23.0.1'

私のために働く。

于 2016-03-18T12:02:20.007 に答える