更改片段,ViewPager [英] Change Fragment with ViewPager
问题描述
我使用 PagerSlidingTab
库 ViewPager
。我想改变片段,同时滚动标签。这是工作的罚款。看看我的code。
我使用 AsynTask()
每个片段
。
当在App打开与MainActivity,第一块碎片附着到的活性,但它示出了两个 AsynTask()
对话消息,一个来自第一和另一个从第二片段
。当我滚动到第二个选项卡,它显示三片段
的对话消息。
所以,如果我从左侧到右侧标签滚动时,片段
你对当前的片段显示,如果我从右向左滚动,在片段
留到当前显示片段
。
请帮我解决这个问题。
我的code:
公共类PageSlidingTabStripFragment扩展片段{
公共静态最终字符串标记= PageSlidingTabStripFragment.class
.getSimpleName();
公共静态PageSlidingTabStripFragment的newInstance(){
返回新PageSlidingTabStripFragment();
}
@覆盖
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
setRetainInstance(真正的);
}
@覆盖
公共查看onCreateView(LayoutInflater充气,容器的ViewGroup,
捆绑savedInstanceState){
返回inflater.inflate(R.layout.pager,集装箱,假);
}
@覆盖
公共无效onViewCreated(查看视图,捆绑savedInstanceState){
super.onViewCreated(查看,savedInstanceState);
PagerSlidingTabStrip标签=(PagerSlidingTabStrip)查看
.findViewById(R.id.tabs);
ViewPager寻呼机=(ViewPager)view.findViewById(R.id.pager);
MyPagerAdapter适配器=新MyPagerAdapter(getChildFragmentManager());
pager.setAdapter(适配器);
tabs.setViewPager(寻呼机);
}
公共类MyPagerAdapter扩展FragmentPagerAdapter {
公共MyPagerAdapter(android.support.v4.app.FragmentManager FM){
超(FM);
}
私人最终的String []业权= {即时机遇,事件,
专家};
@覆盖
公共CharSequence的getPageTitle(INT位置){
返回TITLES [位置]
}
@覆盖
公众诠释getCount将(){
返回TITLES.length;
}
@覆盖
公共片段的getItem(INT位置){
开关(位置){
情况下0:
返回新InstantOpportunity();
情况1:
回到新的活动();
案例2:
返回新的专家();
默认:
打破;
}
返回null;
}
}
}
请使用此example..its非常easy.i已经实现了。
希望它有用you.its最佳寻呼机滑动标签栏的例子。
使用
的FrameLayout强制性的:
的FrameLayout FL =新的FrameLayout(getActivity());
fl.addView(urFragementView);
,然后设置在此的FrameLayout您fragement看法。
I am using PagerSlidingTab
Library for ViewPager
. And I want to change Fragment while scrolling of tabs. It is working fine. Check out my code.
I am using AsynTask()
on each Fragment
.
When the App opens with the MainActivity, First Fragment is attached to the activity, But It shows two AsynTask()
dialog message, one from First and another from Second Fragment
. And When I scroll to second tab, It shows dialog message of Third Fragment
.
So, If I scroll from left to right in tabs, the Fragment
right to the current fragment is displayed and if i scroll from right to left, the Fragment
left to the current Fragment
is displayed.
Please help me to solve the problem.
My Code:
public class PageSlidingTabStripFragment extends Fragment {
public static final String TAG = PageSlidingTabStripFragment.class
.getSimpleName();
public static PageSlidingTabStripFragment newInstance() {
return new PageSlidingTabStripFragment();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.pager, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) view
.findViewById(R.id.tabs);
ViewPager pager = (ViewPager) view.findViewById(R.id.pager);
MyPagerAdapter adapter = new MyPagerAdapter(getChildFragmentManager());
pager.setAdapter(adapter);
tabs.setViewPager(pager);
}
public class MyPagerAdapter extends FragmentPagerAdapter {
public MyPagerAdapter(android.support.v4.app.FragmentManager fm) {
super(fm);
}
private final String[] TITLES = { "Instant Opportunity", "Events",
"Experts" };
@Override
public CharSequence getPageTitle(int position) {
return TITLES[position];
}
@Override
public int getCount() {
return TITLES.length;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new InstantOpportunity();
case 1:
return new Events();
case 2:
return new Experts();
default:
break;
}
return null;
}
}
}
please use this example..its very easy.i already implement that.
hope its useful to you.its best example of pager-sliding-tabstrip.
Use
framelayout compulsory:
FrameLayout fl = new FrameLayout(getActivity());
fl.addView(urFragementView);
and then set your fragement view in this framelayout.
这篇关于更改片段,ViewPager的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!