国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Fragment的隱藏與顯示

2019-11-09 18:57:01
字體:
來源:轉載
供稿:網友

一般fragment和activity一起用的時候有兩種方法,一個是用fragment替換到activity里事先放置的站位布局

FragmentTransaction fragmentTransaction = getFragmentTransaction(); fragmentTransaction.replace(res, fragment); fragmentTransaction.commit();

但是這種方法就是每次都要創建一個fragment去替換到布局里面去,每次都要把fragment里面的代碼都走一遍,如果是有很多數據的網絡請求,每次都要去請求一遍,是不是很耗時間和流量,解決的辦法就是用fragment的顯示與隱藏 看看效果這里寫圖片描述

下面是實現的代碼

package com.duanlian.fragmenthideandshowdemo;import android.os.Bundle;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentTransaction;import android.support.v7.app.AppCompatActivity;import android.widget.RadioGroup;import com.duanlian.fragmenthideandshowdemo.fragment.MaFragment;import com.duanlian.fragmenthideandshowdemo.fragment.WangFragment;import com.duanlian.fragmenthideandshowdemo.fragment.ZhangFragment;import com.duanlian.fragmenthideandshowdemo.fragment.ZhaoFragment;public class MainActivity extends AppCompatActivity { PRivate RadioGroup mRadioGroup;//單選組 private FragmentTransaction mFragmentTransaction;//fragment事務 private FragmentManager mFragmentManager;//fragment管理者 private WangFragment mWangFragment; private MaFragment mMaFragment; private ZhangFragment mZhangFragment; private ZhaoFragment mZhaoFragment; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); setClick(0);//默認進去顯示王超fragment } private void initView() { mRadioGroup = (RadioGroup) findViewById(R.id.rg); mFragmentManager = getSupportFragmentManager();//獲取到fragment的管理對象 //RadioGroup的選中監聽 mRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId) { case R.id.rb_zero://王超 setClick(0); break; case R.id.rb_one://馬漢 setClick(1); break; case R.id.rb_two://張龍 setClick(2); break; case R.id.rb_three://趙虎 setClick(3); break; } } }); } private void setClick(int type) { //開啟事務 mFragmentTransaction = mFragmentManager.beginTransaction(); //顯示之前將所有的fragment都隱藏起來,在去顯示我們想要顯示的fragment hideFragment(mFragmentTransaction); switch (type) { case 0://王超 //如果王超的fragment是null的話,就創建一個 if (mWangFragment == null) { mWangFragment = new WangFragment(); //加入事務 mFragmentTransaction.add(R.id.fragment, mWangFragment); } else { //如果王超fragment不為空就顯示出來 mFragmentTransaction.show(mWangFragment); } break; case 1: if (mMaFragment == null) { mMaFragment = new MaFragment(); //加入事務 mFragmentTransaction.add(R.id.fragment, mMaFragment); } else { //如果王超fragment不為空就顯示出來 mFragmentTransaction.show(mMaFragment); } break; case 2: if (mZhangFragment == null) { mZhangFragment = new ZhangFragment(); //加入事務 mFragmentTransaction.add(R.id.fragment, mZhangFragment); } else { //如果王超fragment不為空就顯示出來 mFragmentTransaction.show(mZhangFragment); } break; case 3: if (mZhaoFragment == null) { mZhaoFragment = new ZhaoFragment(); //加入事務 mFragmentTransaction.add(R.id.fragment, mZhaoFragment); } else { //如果王超fragment不為空就顯示出來 mFragmentTransaction.show(mZhaoFragment); } break; } //提交事務 mFragmentTransaction.commit(); } /** * 用來隱藏fragment的方法 * * @param fragmentTransaction */ private void hideFragment(FragmentTransaction fragmentTransaction) { //如果此fragment不為空的話就隱藏起來 if (mWangFragment != null) { fragmentTransaction.hide(mWangFragment); } if (mMaFragment != null) { fragmentTransaction.hide(mMaFragment); } if (mZhangFragment != null) { fragmentTransaction.hide(mZhangFragment); } if (mZhaoFragment != null) { fragmentTransaction.hide(mZhaoFragment); } }}

細節請看demo 點擊下載


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 遂昌县| 八宿县| 南康市| 南江县| 明光市| 石景山区| 清新县| 平山县| 安乡县| 丹阳市| 淳安县| 罗城| 清涧县| 柳林县| 河东区| 广灵县| 顺义区| 乐昌市| 蓬溪县| 镇原县| 克山县| 博兴县| 耿马| 广州市| 巴林右旗| 岳西县| 普安县| 乐陵市| 高台县| 东光县| 张家川| 利川市| 西平县| 上饶县| 昭平县| 四子王旗| 习水县| 江华| 安平县| 浪卡子县| 徐汇区|