使用导航抽屉在主活动中加载的片段中的选项卡/滑动视图

时间:2014-11-19 03:04:19

标签: java android tabs fragment

每次选择菜单项时,我都会使用导航抽屉并加载片段。但我有一个片段,我想使用制表符/滑动视图,因此这个片段本身会有多个我正在切换的片段。

我的问题是在主活动中加载的片段内实现滑动视图/标签的最佳方法是什么。关于这个的任何好的教程?我应该在主要活动的操作栏中添加标签还是有更好的方法来执行此操作?

我在网上或从Android开发者网站上看到的任何代码段示例都会导致我的应用程序崩溃,我很难调试问题。

任何示例或想法?

感谢。


这是我开始的一些代码,但是我怎样才能更改标签的样式和更改背景颜色,下划线标签颜色,字体等等。我实际上没有将片段布局/数据添加到选项卡但我有一个虚拟片段我现在加载它是空的。所以我可以通过简单的标准XML布局来轻松地将我正在加载到标签中的片段更改,但是如何自定义标签本身及其外观呢?

我使用了我做的适配器,因为我不想破坏任何东西,我需要访问选项卡中的所有信息,因为它将是第1步到第X步的东西,这会是内存问题吗?只有5-8,而不是数百个标签。

感谢。

public class PagerAdapter extends FragmentPagerAdapter {

public PagerAdapter(FragmentManager fragment) {
    super(fragment);
}

 @Override
 public Fragment getItem(int i) 
 {
     //testing, remove later
     Fragment fragment = new DummyFragment();
     return fragment;
 }

 @Override
 public int getCount() {
     return 6;  //6 tabs
 }

 @Override
 public CharSequence getPageTitle(int position) {
     return "OBJECT " + (position + 1); //dummy title
 }
}

public class TabFragment extends Fragment  {

private FragmentPagerAdapter mPagerAdapter;
private ViewPager mViewPager;

//@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{               
    View view = inflater.inflate(R.layout.fragment_tabs, container, false);

    //this will be our swipe/tab view populated with each checkout
    //piece fragment
    mPagerAdapter =
            new PagerAdapter(
                    getActivity().getSupportFragmentManager());
    mViewPager = (ViewPager)view.findViewById(R.id.pager);
    mViewPager.setAdapter(mPagerAdapter);

    return view;
}   
}

public class DummyFragment extends Fragment {

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

     View view = inflater.inflate(R.layout.fragment_dummy, container, false);
     return view;
 }
}

1 个答案:

答案 0 :(得分:0)

我的应用使用相同的模式,您需要将最低API级别设置为17并使用getChildFragmentManager。因此,当您单击导航抽屉项目时,基本上加载的片段将在其中托管一堆子片段。我发现让子片段为此静态内部类是有用的。

您在活动中加载的片段应该具有这样的XML布局     

<android.support.v4.view.ViewPager
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.view.PagerTitleStrip
        android:id="@+id/pagerTitleStrip"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:layout_gravity="top"
        android:paddingTop="4dp"
        android:paddingBottom="4dp"/>
</android.support.v4.view.ViewPager>

因此,您将此作为父片段布局进行充气,并使用一堆子片段设置适配器。