[英]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.