我一直在尝试在片段中使用选项卡视图,但是通过导航栏访问时会出现一些错误。第一次访问时,我可以自由地在选项卡之间移动,但是当从另一个片段再次返回到此页面时,选项卡不再移动,而且我只能卡在一个选项卡中,默认情况下只显示第一个选项卡。请帮忙解决。
以下是我的BlankFragment3.java代码:
以下是我的BlankFragment3.java代码:
public class BlankFragment3 extends android.support.v4.app.Fragment {
FragmentManager fragmentManager;
private MainActivity myContext;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
myContext= (MainActivity) activity;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view= inflater.inflate(R.layout.fragment_blank_fragment3, container, false);
ViewPager viewPager = (ViewPager) view.findViewById(R.id.viewpager);
viewPager.setAdapter(new SampleFragmentPagerAdapter(myContext.getSupportFragmentManager()));
PagerSlidingTabStrip tabsStrip = (PagerSlidingTabStrip)view.findViewById(R.id.tabs);
tabsStrip.setBackgroundColor(Color.parseColor("#333333"));
// Attach the view pager to the tab strip
tabsStrip.setViewPager(viewPager);
return view;
}
}
这是我的fragment.xml文件:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<include
android:id="@+id/toolbar"
layout="@layout/toolbar">
</include>
<com.astuetz.PagerSlidingTabStrip
android:id="@+id/tabs"
app:pstsShouldExpand="true"
app:pstsTextAllCaps="true"
app:pstsIndicatorColor="#ff9900"
android:textColor="#ffffff"
android:textSize="14sp"
app:pstsUnderlineColor="@android:color/white"
android:layout_width="match_parent"
android:layout_height="48dp">
</com.astuetz.PagerSlidingTabStrip>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white" />
</LinearLayout>
这里是SampleFragmentPagerAdapter.java的代码:
public class SampleFragmentPagerAdapter extends FragmentPagerAdapter {
final int PAGE_COUNT = 2;
private String tabTitles[] = new String[] { "Today's Deals", "Deals Close By" };
public SampleFragmentPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return PAGE_COUNT;
}
@Override
public Fragment getItem(int position) {
if(position==0) {
return new TodaysDeal();
} else {
return new DealsCloseBy();
}
}
@Override
public CharSequence getPageTitle(int position) {
// Generate title based on item position
return tabTitles[position];
}
}