fragment 切换时的优化一:
来源:互联网 发布:淘宝查号网 编辑:程序博客网 时间:2024/04/29 21:27
package com.pcf.fragment.activity;import android.content.SharedPreferences;import android.sax.RootElement;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentTransaction;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.FrameLayout;import android.widget.LinearLayout;import android.widget.RadioButton;import android.widget.RadioGroup;import android.widget.RelativeLayout;import android.widget.Toast;import com.pcf.fragment.R;import com.pcf.fragment.fragment.Frafment_A;import com.pcf.fragment.fragment.Frafment_B;import com.pcf.fragment.fragment.Frafment_C;import com.pcf.fragment.fragment.Frafment_D;import java.util.Stack;public class MainActivity extends AppCompatActivity implements View.OnClickListener { LinearLayout fragment_layout; Fragment fgOne = null; Fragment fgTwo = null; Fragment fgThree = null; Fragment fgFour = null; Fragment currentFg = null; FragmentTransaction ft = null; FragmentManager fm = null; Button button_1, button_2, button_3, button_4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initView(); initeLinstener(); } public void initView() { setContentView(R.layout.activity_main); fragment_layout = (LinearLayout) findViewById(R.id.fragment_layout); fm = getSupportFragmentManager(); ft = fm.beginTransaction(); fgOne = new Frafment_A(); fgTwo = new Frafment_B(); fgThree = new Frafment_C(); fgFour = new Frafment_D(); //初始化布局,第一次加载进来显示的fragment,为fragmentA currentFg = fgOne; if (!currentFg.isAdded()){ ft.add(R.id.fragment_layout,currentFg); Log.i("TAG","currentFg加载"); }else { ft.show(currentFg); } ft.commit(); button_1 = (Button) findViewById(R.id.button_1); button_2 = (Button) findViewById(R.id.button_2); button_3 = (Button) findViewById(R.id.button_3); button_4 = (Button) findViewById(R.id.button_4); } public void initeLinstener() { button_1.setOnClickListener(this); button_2.setOnClickListener(this); button_3.setOnClickListener(this); button_4.setOnClickListener(this); } @Override public void onClick(View v) { ft = fm.beginTransaction(); switch (v.getId()) { case R.id.button_1: changeFragment(fgOne); break; case R.id.button_2: changeFragment(fgTwo); break; case R.id.button_3: changeFragment(fgThree); break; case R.id.button_4: changeFragment(fgFour); break; } } /*** * 切换布局调用的方法 * 如果该fragment已经加载,就直接hide当前的fragment然后显示该fragment,避免重复的加载fragment * * @param fg */ public void changeFragment(Fragment fg) { if (!fg.isAdded()) { ft.hide(currentFg).add(R.id.fragment_layout, fg); } else { ft.hide(currentFg).show(fg); } //全局变量,记录当前的currentFg; currentFg = fg; ft.commit(); }}
0 0
- fragment 切换时的优化一:
- 对Fragment切换的优化
- Fragment切换优化
- Android优化之切换Fragment
- 【Fragment精深系列7】Fragment切换优化
- 在navigationView中切换/创建fragment时的卡顿优化
- 优化多个Fragment切换出现的问题FragmentTabAdapter
- fragment的生命周期以及fragment切换时的生命周期
- Android 项目首页的Fragment切换实例(一)
- Android Fragment切换时的动画效果
- # **Fragment切换时重叠显示的解决办法**
- Fragment之间的切换
- Fragment的切换
- 简单的Fragment切换
- 关于Fragment 的切换
- 两个fragment的切换
- Fragment页面的切换
- Fragment的切换方法
- BeanUtil
- 怎么让BAT文件不一闪而过
- 几种不同格式的json解析
- macaca
- DLNA协议总结
- fragment 切换时的优化一:
- 第八周项目4——字符串加密
- 股价飙升20%市值增长100亿,《纸牌屋》之父Netflix凭什么比他的竞争者要强12倍?
- C语言总结
- 第八周项目3--顺序串算法
- 验证码登陆demo
- iOS10中的极光推送消息的适配
- cin.get(line,ArSize) cin.getline(line,ArSize)和getline(cin,name)读取一行字符串区别
- ssh连接报Connection closed by foreign host.