FrameLayout底部点击按钮切换,TabLayout 顶部点击按钮切换

例:






MainActivity  主方法:

public class MainActivity extends AppCompatActivity {
    private FrameLayout fl_main;
    private RadioGroup group;
    private ArrayList<Fragment> fragments;
    private FragmentManager supportFragmentManager;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        fl_main = (FrameLayout) findViewById(R.id.fl_main);
        group = (RadioGroup) findViewById(R.id.group);
        initFragments();
        supportFragmentManager = getSupportFragmentManager();
        supportFragmentManager.beginTransaction().add(R.id.fl_main, fragments.get(0)).commit();
        //点击按钮处理切换逻辑
        group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int id) {
                //i 就是你点击的那个控件的id
                //supportFragmentManager可以复用,Transaction不可复用,每次提交后事物就结束了;
                switch (id) {
                    case R.id.but1:
                        supportFragmentManager.beginTransaction().replace(R.id.fl_main, fragments.get(0)).commit();
                        break;
                    case R.id.but2:
                        supportFragmentManager.beginTransaction().replace(R.id.fl_main, fragments.get(1)).commit();
                        break;
                    case R.id.but3:
                        supportFragmentManager.beginTransaction().replace(R.id.fl_main, fragments.get(2)).commit();
                        break;
                    case R.id.but4:
                        supportFragmentManager.beginTransaction().replace(R.id.fl_main, fragments.get(3)).commit();
                        break;
                    case R.id.but5:
                        supportFragmentManager.beginTransaction().replace(R.id.fl_main, fragments.get(4)).commit();
                        break;
                }
            }
        });
    }
    private void initFragments() {
        fragments = new ArrayList<>();
        fragments.add(new Main1Fragment());
        fragments.add(new Main2Fragment());
        fragments.add(new Main3Fragment());
        fragments.add(new Main4Fragment());
        fragments.add(new Main5Fragment());
    }
}

activity_main

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    tools:context=".MainActivity">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <FrameLayout
            android:id="@+id/fl_main"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="9" />
        <RadioGroup
            android:id="@+id/group"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="horizontal">
            <RadioButton
                android:id="@+id/but1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:button="@null"
                android:gravity="center"
                android:text="首页" />
            <RadioButton
                android:id="@+id/but2"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:button="@null"
                android:gravity="center"
                android:text="想法" />
            <RadioButton
                android:id="@+id/but3"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:button="@null"
                android:gravity="center"
                android:text="市场" />
            <RadioButton
                android:id="@+id/but4"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:button="@null"
                android:gravity="center"
                android:text="通知" />
            <RadioButton
                android:id="@+id/but5"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:button="@null"
                android:gravity="center"
                android:text="更多" />
        </RadioGroup>
    </LinearLayout>
</RelativeLayout>



加依赖:(TabLayout )

dependencies {
    implementation 'com.android.support:design:27.0.2'
}

Main1Fragment  类

public class Main1Fragment extends Fragment {
    private TabLayout myTab;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = View.inflate(getActivity(), R.layout.fragment_main1, null);
        myTab = view.findViewById(R.id.Tab);
        return view;
    }
    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        //添加选项卡
        myTab.addTab(myTab.newTab().setText("天枢"));
        myTab.addTab(myTab.newTab().setText("天璇"));
        myTab.addTab(myTab.newTab().setText("天玑"));
        myTab.addTab(myTab.newTab().setText("天权"));
        myTab.addTab(myTab.newTab().setText("开阳"));
        myTab.addTab(myTab.newTab().setText("玉衡"));
        myTab.addTab(myTab.newTab().setText("瑶光"));
        //选项卡被选中的监听事件
        myTab.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                Toast.makeText(getActivity(),tab.getText().toString(),Toast.LENGTH_SHORT).show();
            }
            @Override
            public void onTabUnselected(TabLayout.Tab tab) {
            }
            @Override
            public void onTabReselected(TabLayout.Tab tab) {
            }
        });
    }
}

fragment_main1

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <android.support.design.widget.TabLayout
        android:layout_height="50dp"
        android:layout_width="match_parent"
        android:id="@+id/Tab">
    </android.support.design.widget.TabLayout>
</RelativeLayout>


Main2Fragment 

public class Main2Fragment extends Fragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = View.inflate(getActivity(), R.layout.fragment_main2, null);
        return view;
    }
    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
    }
}

fragment_main2

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</RelativeLayout>









猜你喜欢

转载自blog.csdn.net/jun_tong/article/details/80630201