Frangment实现方式,Fragment实现标签页切换,Fragment+ViewPager实现标签页联动

Frangment的两种切换方式 

幻想一下 “QQ切换页面” 和 “微信切换页面” 对没错就是这两种:

QQ切换页面:Fragment实现标签页切换

微信切换页面:Fragment+ViewPager实现标签页联动 

秀给朕上代码:                               。。。好嘞

戳这里-------》Fragment第三种实现方式,静态工厂。。。


Fragment实现标签页切换 :

                // 动态加载fragment
		// 获取fragment管理者
		manager = getFragmentManager();
		// 开启事务
		FragmentTransaction transaction = manager.beginTransaction();
		frag_01 = new Frag_01();
		frag_02 = new Frag_02();
		frag_03 = new Frag_03();
		frag_04 = new Frag_04();
		// 把fragment对象加到事物中
		transaction.add(R.id.framelayout, frag_01);
		transaction.add(R.id.framelayout, frag_02);
		transaction.add(R.id.framelayout, frag_03);
		transaction.add(R.id.framelayout, frag_04);
		// 控制显示隐藏
		transaction.show(frag_01).hide(frag_02).hide(frag_03).hide(frag_04);
		// 替换(帧布局id,要换成fragment对象)
		// transaction.replace(R.id.framelayout, frag_01);
		// 提交
		transaction.commit();

 Fragment实现标签页切换 :(布局文件写法)

 <FrameLayout
        android:id="@+id/framelayout"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

    <RadioGroup
        android:id="@+id/radioGroup1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <RadioButton
            android:id="@+id/radio0"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:drawableTop="@drawable/selector"
            android:gravity="center"
            android:text="消息" />

        <RadioButton
            android:id="@+id/radio1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:drawableTop="@drawable/selector"
            android:gravity="center"
            android:text="联系人" />

        <RadioButton
            android:id="@+id/radio2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:drawableTop="@drawable/selector"
            android:gravity="center"
            android:text="看点" />

        <RadioButton
            android:id="@+id/radio3"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:drawableTop="@drawable/selector"
            android:gravity="center"
            android:text="动态" />
    </RadioGroup>

Fragment+ViewPager实现标签页联动 : 

{
        //控件
        pager = findViewById(R.id.pager);
        radioGroup = findViewById(R.id.radiogroup);
        //页面
        final ArrayList<Fragment> list = new ArrayList<>();
        list.add(new HomeFragment());
        list.add(new VideoFragment());
        list.add(new MyFragment());
        //适配器
        pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int i) {
                return list.get(i);
            }

            @Override
            public int getCount() {
                return list.size();
            }
        });
        //活动监听
        pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int i, float v, int i1) {

            }

            @Override
            public void onPageSelected(int i) {
                radioGroup.check(radioGroup.getChildAt(i).getId());
            }

            @Override
            public void onPageScrollStateChanged(int i) {

            }
        });
        //按钮选页面
        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId) {
                    case R.id.radio0:
                        pager.setCurrentItem(0);
                        break;
                    case R.id.radio1:
                        pager.setCurrentItem(1);
                        break;
                    case R.id.radio2:
                        pager.setCurrentItem(2);
                        break;
                }
            }
        });
    }

Fragment+ViewPager实现标签页联动 : (布局文件写法) 


    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1" />

    <RadioGroup
        android:id="@+id/radiogroup"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/radio0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:checked="true"
            android:drawableTop="@drawable/btu_selector"
            android:gravity="center"
            android:text="首页"
            android:textSize="20sp" />

        <RadioButton
            android:id="@+id/radio1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:drawableTop="@drawable/btu_selector"
            android:gravity="center"
            android:text="小视频"
            android:textSize="20sp" />

        <RadioButton
            android:id="@+id/radio2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:drawableTop="@drawable/btu_selector"
            android:gravity="center"
            android:text="我的"
            android:textSize="20sp" />

    </RadioGroup>

猜你喜欢

转载自blog.csdn.net/weixin_43917449/article/details/85839478