FrameLayout+RadioGroup、RadioButton 点击按钮跳转页面

本文介绍了一种在Android应用中实现主页面底部导航栏切换的方法。通过RadioGroup监听选择变化来控制不同Fragment的显示与隐藏,实现了流畅的页面切换效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package baway.com.mv.view.activity;


import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;

import java.util.List;

import baway.com.mv.R;
import baway.com.mv.view.fragment.Fragment1;
import baway.com.mv.view.fragment.Fragment2;
import baway.com.mv.view.fragment.Fragment3;
import baway.com.mv.view.fragment.Fragment4;

/**
 * 类的作用:
 * 类的思路:
 * 作者:岳俊飞
 * 时间:2017/5/11
 */

public class Zhuactivity extends BaseActivity  {
    private List<Fragment> list;
    private RadioGroup rg;
    private ViewPager vp;
    private RadioButton shouye;
    private RadioButton shipin;
    private RadioButton toutiao;
    private RadioButton denglu;
    private Fragment[] mFragments;
    private int mIndex=0;
    private FrameLayout fr;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.zhu_item);
        initView();
        initFragment();
        initState();

    }
   
    private void initFragment() {
        Fragment1 fragment1 = new Fragment1();
        Fragment2 fragment2 = new Fragment2();
        Fragment3 fragment3 = new Fragment3();
        Fragment4 fragment4 = new Fragment4();
        mFragments = new Fragment[]{fragment1,fragment2,fragment3,fragment4};
        FragmentTransaction ft =getSupportFragmentManager().beginTransaction();
        ft.add(R.id.content,fragment1).commit();
        setIndexSelected(0);
    }
    private void setIndexSelected(int index) {

        if(mIndex==index){
            return;
        }
        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction ft= fragmentManager.beginTransaction();
        //隐藏
        ft.hide(mFragments[mIndex]);
        //判断是否添加
        if(!mFragments[index].isAdded()){
            ft.add(R.id.content,mFragments[index]).show(mFragments[index]);
        }else {
            ft.show(mFragments[index]);
        }
        ft.commit();
        //再次赋值
        mIndex=index;

    }

    private void initView() {
        rg = (RadioGroup) findViewById(R.id.rg);
        fr = (FrameLayout) findViewById(R.id.content);
        shouye = (RadioButton) findViewById(R.id.shouye);
        shipin = (RadioButton) findViewById(R.id.shipin);
        toutiao = (RadioButton) findViewById(R.id.weitoutiao);
        denglu = (RadioButton) findViewById(R.id.weidenglu);
        rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId) {
                    case R.id.shouye:
                        setIndexSelected(0);
                        break;
                    case R.id.shipin:
                        setIndexSelected(1);
                        break;
                    case R.id.weitoutiao:
                        setIndexSelected(2);
                        break;
                    case R.id.weidenglu:
                        setIndexSelected(3);
                        break;
                }
            }
        });
    }
   
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值