没有'FragmentPagerAdapter'片段之间切换 [英] switch between fragments without 'FragmentPagerAdapter'
问题描述
我想在我的活动片段之间进行切换。
我读本教程,但我的情况是因为有一点不同我不想/不能使用'FragmentPagerAdapter,相反,我想要一个按钮,是pssed上的活动$ p $ 2将片段之间切换。
我的活动布局由一个按钮,ViewPager的。此外,我已经得到片段1和Fragment2。
我怎么能这个片段之间使用OnClick方法切换?
我的布局:
< LinearLayout中的xmlns:机器人=http://schemas.android.com/apk/res/android
的xmlns:工具=http://schemas.android.com/tools
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:方向=垂直> <按钮
机器人:文字=切换为
安卓的onClick =switchFragment/> < android.support.v4.view.ViewPager
机器人:ID =@ + ID /寻呼机
机器人:layout_width =match_parent
机器人:layout_height =match_parent>
< /android.support.v4.view.ViewPager>< / LinearLayout中>
和我的活动:
公共类MainHeaderFragment2扩展ActionBarActivity {
...
公共无效switchFragment(查看视图){
片段片段
如果(checkSomething())
片段=新片段1();
其他
片段=新Fragment2();
ViewPager viewPager =(ViewPager)findViewById(R.id.pager);
//现在需要把选择的片段ViewPager莫名其妙。
// 怎么样?这是我的问题
}
}
根据您的意见,这是你应该做的:
布局改成这样:
<按钮
机器人:文字=切换为
安卓的onClick =switchFragment/><的FrameLayout
机器人:ID =@ + ID / fragment_container
机器人:layout_width =match_parent
机器人:layout_height =match_parent/>
要与你的第一个片段填充它第一次:
片段1片段1 = Fragment1.create();
FragmentManager经理= getSupportFragmentManager();
FragmentTransaction fragmentTransaction = manager.beginTransaction();
fragmentTransaction.add(R.id.fragment_container,片段1);
fragmentTransaction.commit();
要替换它,
Fragment2 fragment2 = Fragment2.create();
FragmentManager经理= getSupportFragmentManager();
FragmentTransaction fragmentTransaction = manager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container,fragment2optionalTag);
fragmentTransaction.commit();
Fragmen1
和 Fragment2
是要显示或更换片段。
I am trying to switch between fragments on my activity. I was reading this tutorial, but my case is a bit different since I don't want/can't use the 'FragmentPagerAdapter', instead, I want that a button that is pressed on activity will switch between 2 fragments.
My activity layout consist of a Button and ViewPager. in Addition I have got Fragment1 and Fragment2. How can I switch between this fragments using OnClick method?
My Layout:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:text="Switch it"
android:onClick="switchFragment"/>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
</LinearLayout>
and my activity:
public class MainHeaderFragment2 extends ActionBarActivity {
...
public void switchFragment(View view){
Fragment fragment
if(checkSomething())
fragment = new Fragment1();
else
fragment = new Fragment2();
ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
// now need to put the selected fragment in ViewPager somehow.
// How? that is my question
}
}
Based on your comments, this is what you should do:
Change your layout to this:
<Button
android:text="Switch it"
android:onClick="switchFragment"/>
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
To populate it first time with your first fragment:
Fragment1 fragment1 = Fragment1.create();
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = manager.beginTransaction();
fragmentTransaction.add(R.id.fragment_container, fragment1);
fragmentTransaction.commit();
To replace it,
Fragment2 fragment2 = Fragment2.create();
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = manager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, fragment2, "optionalTag");
fragmentTransaction.commit();
Fragmen1
and Fragment2
are the fragments you want to display or replace.
这篇关于没有'FragmentPagerAdapter'片段之间切换的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!