2

私のアプリケーションは、5 つのスワイプ タブを持つ ViewPager を使用しています。大型デバイスおよび横向きでアプリを実行する場合は ViewPager で 2 つのフラグメントまたは 2 つのタブ ページを膨張させ、小型デバイスまたは縦向きビューで実行する場合は 1 つのフラグメントまたは 1 つのタブ ページを膨張させたいと考えています。また、ViewPager に単一のフラグメントを表示するときに通常行うように、すべてのタブをスワイプできるはずです。

Fragment を拡張する CourseFragment クラスで ViewPager を初期化して膨張させました。

ViewPager mViewPager = (ViewPager) getView().findViewById(
            R.id.pagerYear);

    InfoTechPageAdapter infoTechPageAdapter = new InfoTechPageAdapter(
                getChildFragmentManager());
        mViewPager.setOffscreenPageLimit(5);
        mViewPager.setAdapter(infoTechPageAdapter);

FragmentStatePagerAdapter を拡張する My InfoTechPageAdapter:

package com.usjr.sss.adapter;

import com.usjr.sss.fragment.InfoTechFirstYearFragment;
import com.usjr.sss.fragment.InfoTechFourthYearFragment;
import com.usjr.sss.fragment.InfoTechSecondYearFragment;
import com.usjr.sss.fragment.InfoTechThirdYearFragment;
import com.usjr.sss.fragment.SubmitSubjectFragment;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;

public class InfoTechPageAdapter extends FragmentStatePagerAdapter {

public InfoTechPageAdapter(FragmentManager fm) {
    super(fm);
}

@Override
public Fragment getItem(int pos) {
    Fragment mFragment;

    switch (pos) {

    case 0:
        mFragment = new InfoTechFirstYearFragment();
        mFragment.setArguments(null);
        return mFragment;
    case 1:
        mFragment = new InfoTechSecondYearFragment();
        mFragment.setArguments(null);
        return mFragment;
    case 2:
        mFragment = new InfoTechThirdYearFragment();
        mFragment.setArguments(null);
        return mFragment;
    case 3:
        mFragment = new InfoTechFourthYearFragment();
        mFragment.setArguments(null);
        return mFragment;
    case 4:
        mFragment = new SubmitSubjectFragment();
        mFragment.setArguments(null);
        return mFragment;

    default:
        return null;

    }

}// end getItem

@Override
public int getCount() {

    return 5;
}// end getCount

@Override
public CharSequence getPageTitle(int pos) {
    // Locale l = Locale.getDefault();
    switch (pos) {
    case 0:
        return "FIRST YEAR";
    case 1:
        return "SECOND YEAR";
    case 2:
        return "THIRD YEAR";
    case 3:
        return "FOURTH YEAR";
    case 4:
        return "SUBMIT";

    }
    return null;
}

}
4

1 に答える 1

0

PageAdapter クラスでオーバーライドします。

@Override 
public float getPageWidth(int position) { 
return(0.5f); 
} 
于 2014-11-20T08:03:36.890 に答える