话不多说,上图,扫一扫,读一读,来回切换,根据自己的需要,可做相应的修改
第一步:
布局文件:activity_read_and_write
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".activity.activity_scan_read.ScanAndReadActivity">
<!--FrameLayout-->
<FrameLayout
android:id="@+id/fl_read_write"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<LinearLayout
android:id="@+id/ll_rg_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">
<RadioGroup
android:id="@+id/rg_read_write_main"
android:layout_width="match_parent"
android:layout_height="@dimen/space_70"
android:background="@color/black"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rb_scan"
style="@style/sacn_read_tag_style"
android:layout_marginTop="@dimen/space_5"
android:drawableTop="@drawable/scan_drawable_selector"
android:gravity="center"
android:text="扫一扫" />
<RadioButton
android:id="@+id/rb_read"
style="@style/sacn_read_tag_style"
android:layout_marginTop="@dimen/space_5"
android:drawableTop="@drawable/read_selector"
android:gravity="center"
android:text="读一读" />
</RadioGroup>
</LinearLayout>
</LinearLayout>
第二步:创建两个Fragment / ScanFragment / ReadFragment
package com.glens.jksd.activity.activity_scan_read;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.view.View;
import android.widget.RadioGroup;
import com.glens.jksd.R;
import com.glens.jksd.base.BaseActivity;
import com.glens.jksd.base.BaseFragment;
import com.glens.jksd.fragment.ReadFragment;
import com.glens.jksd.fragment.ScanFragment;
import java.util.ArrayList;
import java.util.List;
public class ScanAndReadActivity extends BaseActivity implements View.OnClickListener {
private RadioGroup mRg_main;
private List<BaseFragment> mBaseFragment; //集合
/**
* 选中的Fragment的对应的位置
*/
private int position;
/**
* 上次切换的Fragment
*/
private Fragment mContent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_read_and_write);
//初始化View
initView();
//初始化Fragment
initFragment();
//设置RadioGroup的监听
setListener();
}
private void setListener() {
mRg_main.setOnCheckedChangeListener(new MyOnCheckedChangeListener());
mRg_main.check(R.id.rb_scan);
}
class MyOnCheckedChangeListener implements RadioGroup.OnCheckedChangeListener {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.rb_scan:
position = 0;
setTitleText("扫一扫");
break;
case R.id.rb_read:
position = 1;
setTitleText("读一读");
break;
}
//根据位置得到对应的Fragment
BaseFragment to = getFragment();
//替换到Fragment
switchFrament(mContent, to);
}
}
/**
* @param from 刚显示的Fragment,马上就要被隐藏了
* @param to 马上要切换到的Fragment,一会要显示
*/
private void switchFrament(Fragment from, Fragment to) {
if (from != to) { //才切换
mContent = to;
FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); //开启事务
//判断to有没有被添加
if (!to.isAdded()) {//to没有被添加
//1.from隐藏
if (from != null) {
ft.hide(from);
}
//2.添加to
if (to != null) {
ft.add(R.id.fl_read_write, to).commit();
}
} else { //to已经被添加
//1.from隐藏
if (from != null) {
ft.hide(from);
}
//2.显示to
if (to != null) {
ft.show(to).commit();
}
}
}
}
/**
* 根据位置得到对应的Fragment
*
* @return
*/
private BaseFragment getFragment() {
BaseFragment fragment = mBaseFragment.get(position);
return fragment;
}
private void initFragment() {
mBaseFragment = new ArrayList<>();
mBaseFragment.add(new ScanFragment());
mBaseFragment.add(new ReadFragment());
}
private void initView() {
getLlBasetitleBack().setOnClickListener(this);
setImageRightVisibity(false);
mRg_main = findViewById(R.id.rg_read_write_main);
}
@Override
public void onClick(View v) {
finish();
}
}
根据自己的需要去修改代码