-1

私のアプリでは、フラグメント内の 4 つのタブのスワイプ ビューを使用したいと考えています。4 つのタブにはそれぞれ異なるフラグメントが含まれており、4 つのフラグメントはすべて右から左へ、またはその逆にスワイプすることでスライドします。フラグメントは正常に機能していますが、タブはフラグメント内に表示されません。誰でもこれに対する解決策を持っています。前もって感謝します :)

これは、タブを含むメインフラグメントです:-

public class DashboardTabFragment extends Fragment implements ActionBar.TabListener {

private static final String ARG_SECTION_NUMBER = "arg_section_number";
private String[] tabTitle = {"Cleanness", "Product Display", "Hygiene", "Asm Visits"};

public static DashboardTabFragment newInstance(int position) {
    DashboardTabFragment fragment = new DashboardTabFragment();
    Bundle args = new Bundle();
    args.putInt(ARG_SECTION_NUMBER, position);
    fragment.setArguments(args);
    return fragment;
}

private ViewPager viewPager;

public DashboardTabFragment() {
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_dashboard_tab, container, false);
    setHasOptionsMenu(true);
    ActionBar actionBar = ((ActionBarActivity) getActivity()).getSupportActionBar();
    assert actionBar != null;
    actionBar.setHomeButtonEnabled(false);
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    actionBar.setHomeButtonEnabled(true);
    actionBar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);
    viewPager = (ViewPager) rootView.findViewById(R.id.pager);
    TabPageAdapter tabPageAdapter = new TabPageAdapter(getActivity().getSupportFragmentManager(), getActivity());
    viewPager.setAdapter(tabPageAdapter);
    for (String aTabTitle : tabTitle)
        actionBar.addTab(actionBar.newTab().setText(aTabTitle).setTabListener(this));
    return rootView;
}

これはフラグメントのアダプターです:-

    public class TabPageAdapter extends FragmentPagerAdapter {
Context context;
public TabPageAdapter(FragmentManager fm,Context context) {
    super(fm);
    this.context = context;
}

@Override
public Fragment getItem(int position) {

    switch (position) {
        case 0:
            return new CleannessChartFragment(context);
        case 1:
            return new ProductDisplayChartFragment(context);
        case 2:
            return new HygieneChartFragment(context);
        case 3:
            return new AsmVisitsChartFragment(context);
    }

    return null;
}

@Override
public int getCount() {
    return 4;
}
4

1 に答える 1