Demo下载
Android Fragment使用和切换 笔记_第1张图片
MainActivity代码

import androidx.appcompat.app.AppCompatActivity;import androidx.fragment.app.Fragment;import androidx.fragment.app.FragmentActivity;import androidx.fragment.app.FragmentManager;import androidx.fragment.app.FragmentTransaction;import android.os.Bundle;import android.view.View;import android.widget.TextView;public class MainActivity extends AppCompatActivity {    private Fragment1 fg1 =new Fragment1();    private Fragment2 fg2 = new Fragment2();    private TextView tv1;    private TextView tv2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        SwithFragment(fg1,this,R.id.fg).commit();        findViewById(R.id.fg1).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                SwithFragment(fg1,MainActivity.this,R.id.fg).commit();            }        });        findViewById(R.id.fg2).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                SwithFragment(fg2,MainActivity.this,R.id.fg).commit();            }        });    }    Fragment cacheFragment;    public FragmentTransaction SwithFragment(Fragment fragment, FragmentActivity fma, int idResources){        FragmentManager fm= fma.getSupportFragmentManager();        FragmentTransaction transaction = fm.beginTransaction();        if (!fragment.isAdded()){//还没添加 Fragment            if (cacheFragment !=null){                transaction.hide(cacheFragment);            }            transaction.add(idResources,fragment,fragment.getClass().getName());        }else{//已经添加过了 Fragment            transaction.hide(cacheFragment).show(fragment);        }        cacheFragment =fragment;        return transaction;    }}

Fragment1 和 Fragment2 代码

package com.manggai.fragmentswith;import android.os.Bundle;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;public class Fragment1 extends Fragment {    @Override    public void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);    }    @Nullable    @Override    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.fragment1,container,false);        return view;    }}

fragment1.xml 和 fragment2.xml

<?xml version="1.0" encoding="utf-8"?>    

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>                                

更多相关文章

  1. android典型代码系列(三十)------DES加密算法
  2. 使用 Android NDK 重用现有的 C 代码
  3. Android 开发笔记
  4. Android WebView学习笔记
  5. 修改Android的开关机铃声、Android开关机画面与动画(附代码流程)
  6. Android 初学入门代码注释 学习笔记001 16.03.18
  7. Android实训所学功能实现代码集合

随机推荐

  1. Android性能调优总结
  2. 简析Android对Linux内核的改动
  3. Android开发秘籍学习笔记(八)
  4. android:layout_margin真实含义 及 自定
  5. Android之事件响应的两种模型分析
  6. Android 适配---notification led 呼吸灯
  7. Android 音频 OpenSL ES PCM数据播放
  8. Android 面试题总结之Android 基础(一)
  9. 披上ios外套的Android为何会格外受欢迎?
  10. 在Android核的java核心库libcore中打印lo