Android Fragment使用和切换 笔记
16lz
2021-01-23
Demo下载
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"?>
更多相关文章
- android典型代码系列(三十)------DES加密算法
- 使用 Android NDK 重用现有的 C 代码
- Android 开发笔记
- Android WebView学习笔记
- 修改Android的开关机铃声、Android开关机画面与动画(附代码流程)
- Android 初学入门代码注释 学习笔记001 16.03.18
- Android实训所学功能实现代码集合