簡體   English   中英

使用導航抽屜在主活動中加載的片段中的選項卡/滑動視圖

[英]Tabs/Swipe view in fragment loaded in main activity using navigation drawer

每次選擇菜單項時,我都在使用導航抽屜並加載片段。 但是我有一個片段,我想在其中使用選項卡/滑動視圖,因此該片段本身將具有我要在其間切換的多個片段。

我的問題是在主活動中加載的片段內實現滑動視圖/選項卡的最佳方法是什么。 有什么好的教程嗎? 我應該在主要活動的操作欄上添加選項卡,還是有更好的方法呢?

我在網上或從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;
 }
}

我的應用程序使用相同的模式,您需要將最低API級別設置為17並使用getChildFragmentManager。 因此,基本上,當您單擊導航抽屜項目時加載的片段將在其中包含一堆子片段。 我發現使子片段成為靜態內部類很有用。

您在活動中加載的Fragment應該具有這樣的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>

因此,您將此作為父片段布局進行充氣,並設置帶有一堆子片段的適配器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM