FragmentTransaction的replace方法
使用replace方法時,要新增的Fragment都會重新例項化。
官方文件:
replace()這個方法只是在上一個Fragment不再需要時採用的簡便方法;
正確的切換方式:
切換時hide(),add()另一個Fragment,再次切換時只需要hide()當前的,show()另一個;
示例程式碼:
public void switchContent(Fragment from, Fragment to, int position) {
if (mContent != to) {
mContent = to;
FragmentTransaction transaction = fm.beginTransaction();
// 先判斷是否被add過
if (!to.isAdded()) {
// 隱藏當前的fragment,add下一個到Activity中
transaction.hide(from)
.add(R.id.content_frame, to, tags[position]).commit(); } else {
// 隱藏當前的fragment,顯示下一個
transaction.hide(from).show(to).commit(); }
}
}
相關文章
- 字串replace方法的使用字串
- FragmentTransaction使用全解Fragment
- 深入理解 JavaScript 中的 replace 方法JavaScript
- 原生js實現replace方法JS
- 使用正規表示式替換字串的方法(replace方法)字串
- js replace()方法進行字串替換JS字串
- python 字串replace方法實現探索Python字串
- replace()方法的正則表達相關應用
- Python replace方法並不改變原字串Python字串
- Replace
- Android 進階17:Fragment FragmentManager FragmentTransaction 深入理解AndroidFragment
- MYSQL中replace into的用法MySql
- mySQL中replace的用法MySql
- JavaScript replace()JavaScript
- mysql replaceMySql
- php函式substr_replace中文亂碼的替代解決方法PHP函式
- replace()方法替換字串內容程式碼例項字串
- 淺析MySQL replace into 的用法MySql
- MySQL replace into的使用細則MySql
- js replace替換字串,同時替換多個方法JS字串
- replace函式函式
- 從一則案例解析js正則的String物件的replace方法使用技巧JS物件
- mysql中replace函式的用法MySql函式
- oracle中translate與replace的使用Oracle
- MySQL 5.7 REPLACE語句的用法MySql
- 【Go】strings.Replace 與 bytes.Replace 調優Go
- MySQL replace語句MySql
- PHP字串替換substr_replace與str_replace函式PHP字串函式
- maxp = maxp.replace("\$","").replace(/_/g,""); js 正則全欄位匹配JS
- javascript中replace的高階運用JavaScript
- javascript的replace()函式用法詳解JavaScript函式
- 頭痛的ASCII和preg_replace()ASCII
- xp中的超級命令replace(轉)
- 20190118-自定義實現replace方法
- SQLite INSERT OR REPLACE使用SQLite
- str_replace()函式函式
- Symbol.replace 屬性Symbol
- Deprecated:Functionereg_replace()isdeprecatedFunction