MainActivity.java
package com.example.acttofgmt.ui.activity;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentTransaction;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.example.acttofgmt.R;
import com.example.acttofgmt.ui.constant.Constant;
import com.example.acttofgmt.ui.fragments.OneFragment;
import com.example.acttofgmt.ui.fragments.SecondFragment;
import com.example.acttofgmt.ui.fragments.ThirdFragment;
import java.util.Objects;
public class MainActivity extends FragmentActivity {
private Button mTabOne;
private Button mTabTow;
private Button mTabThird;
private OneFragment mOneFragment ;
private SecondFragment mSecondFragment ;
private ThirdFragment mThirdFragment ;
private Handler mHandler;
private FragmentTransaction mFragmentTran;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// initManager();
initView();
initFragment(savedInstanceState);
}
private void initView() {
mTabOne=findViewById(R.id.one);
mTabOne.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switchContactsOrCallLog(Constant.ONE);
}
});
mTabTow=findViewById(R.id.tow);
mTabTow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switchContactsOrCallLog(Constant.TOW);
}
});
mTabThird=findViewById(R.id.third);
mTabThird.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switchContactsOrCallLog(Constant.THIRD);
}
});
mHandler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message msg) {
return false;
}
});
}
private void initFragment(Bundle savedInstanceState) {
if(null != savedInstanceState){
mOneFragment = (OneFragment)getSupportFragmentManager().findFragmentByTag("OneFragment");
mSecondFragment = (SecondFragment)getSupportFragmentManager().findFragmentByTag("SecondFragment");
mThirdFragment = (ThirdFragment)getSupportFragmentManager().findFragmentByTag("ThirdFragment");
}else{
mOneFragment = new OneFragment(mHandler,this);
mSecondFragment = new SecondFragment(mHandler,this);
mThirdFragment = new ThirdFragment(mHandler,this);
mFragmentTran = getSupportFragmentManager().beginTransaction();
mFragmentTran.add(R.id.fragment_container_fl, mOneFragment,"OneFragment");
mFragmentTran.add(R.id.fragment_container_fl,mSecondFragment,"SecondFragment");
mFragmentTran.add(R.id.fragment_container_fl,mThirdFragment,"ThirdFragment");
mFragmentTran.commitAllowingStateLoss();
}
switchContactsOrCallLog(Constant.ONE);
}
private void switchContactsOrCallLog(int contactsOrCallLog) {
FragmentTransaction contacts = getSupportFragmentManager().beginTransaction();
switch(contactsOrCallLog){
case Constant.ONE:
contacts.show(mOneFragment).hide(mSecondFragment).hide(mThirdFragment).commitAllowingStateLoss();
break;
case Constant.TOW:
contacts.show(mSecondFragment).hide(mOneFragment).hide(mThirdFragment).commitAllowingStateLoss();
break;
case Constant.THIRD:
contacts.show(mThirdFragment).hide(mSecondFragment).hide(mOneFragment).commitAllowingStateLoss();
break;
default:
break;
}
}
}
package com.example.acttofgmt.ui.fragments;
import android.os.Bundle;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import com.example.acttofgmt.R;
import com.example.acttofgmt.ui.activity.MainActivity;
public class OneFragment extends Fragment implements View.OnClickListener{
public OneFragment(Handler mHandler, MainActivity mainActivity) {
}
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.one_fragment, container, false);
return view;
}
@Override
public void onClick(View v) {
}
}
activity_main.xml
<?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"
tools:context=".ui.activity.MainActivity">
<LinearLayout
android:id="@+id/connectedTab"
android:layout_width="336px"
android:layout_height="70px"
android:layout_marginLeft="100px"
android:orientation="horizontal">
<Button
android:id="@+id/one"
android:layout_width="112px"
android:layout_height="70px"
android:text="call"
/>
<Button
android:id="@+id/tow"
android:layout_width="112px"
android:layout_height="70px"
android:text="setting"/>
<Button
android:id="@+id/third"
android:layout_width="112px"
android:layout_height="70px"
android:text="third"/>
</LinearLayout>
<FrameLayout
android:id="@+id/fragment_container_fl"
android:layout_width="522px"
android:layout_height="match_parent"
android:layout_below="@+id/connectedTab" />
</LinearLayout>
one_fragment.xml,two_fragment.xml和third_fragment.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/design_default_color_primary">
</LinearLayout>