关于android:在fragment中使用viewpager嵌套fragment

40次阅读

共计 1721 个字符,预计需要花费 5 分钟才能阅读完成。

步骤:
1、在 Activity 布局文件中定义 framelayout 用于增加 Fragment
2、创立两个 Fragment 用于切换
3、获取 Fragment 管理器,并开启事物 FragmentTransaction
4、通 FragmentTransaction.add(resource id, fragment) 将 fragment 增加到布局上,提交事物 commit
5、通 FragmentTransaction. replace(resource id, fragment)切换显示的 fragment,提交事物 commit

acvitity_dynamic.xml

 <Button
        android:id="@+id/btn_change"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="切换" />

    <FrameLayout
        android:id="@+id/fl_fragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/holo_green_light"></FrameLayout>
DynamicAcvitity.java

public class DynamicActivity extends AppCompatActivity {
    private Button btn_change;
    private BlankFragment blank;
    private SecFragment sec;
    private Fragment fragment;// 用该变量示意当初展现的是哪一个 fragment
    private FragmentManager manager;
    @Override
    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dynamic);
        blank = new BlankFragment();
        sec = new SecFragment();
        fragment=blank;
        manager=getSupportFragmentManager();
        // 开始一个事物
        FragmentTransaction transaction=manager.beginTransaction();
        transaction.add(R.id.fl_fragment,blank);
        transaction.commit();// 事物要提交过后才会无效
        // 实例化按钮
        btn_change= (Button) findViewById(R.id.btn_change);
        btn_change.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 一个事物提交后完结不能再用,要新建一个事物
                FragmentTransaction transaction1=manager.beginTransaction();
                if(fragment instanceof BlankFragment){fragment=sec;}else {fragment=blank;}
                transaction1.replace(R.id.fl_fragment,fragment);
                transaction1.commit();}
        });

Fragment 中嵌套 fragment 问题
在 fragment 中应用 viewpager 嵌套 fragment,获取 fragmentManager 的时候应用 getChildFragmentManager 替换 getFragmentManager.

结语:后续会继续更新哦,喜爱记得点赞关注一下吧。
相干视频
【Android 进阶】ViewPager 嵌套 fragment 架构解析

正文完
 0