Android(安卓)Fragment使用和切换 笔记
16lz
2021-12-04
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 反射解析xml文件成为java对象
- android实现异步下载过程
- Android之断点续传下载
- android 怎样用代码设置墙纸
- android:keyboardNavigationCluster
- Android(安卓)Studio打包时候报错:app:lintVitalRelease
- android典型代码系列(三十)------DES加密算法
- android 中Spinner与dialog的综合应用
- android之网络资源多线程下载