2017-04-20 256 views
0

我有一個FragmentTabHost,我已經加入這樣的usertab:FragmentTabHost改變片段一定標籤,即使它不是選擇

mTabHost.addTab(mTabHost.newTabSpec("usertab").setIndicator(uti), LoginTab.class, null); 

當用戶的loggedIn我想改變類爲該標籤到UserTab我這樣做:但是

getSupportFragmentManager() 
       .beginTransaction() 
       .replace(android.R.id.tabcontent, new UserTab(), "usertab") 
       .commit(); 

如果用戶在不同的選項卡上的用戶是在得到改變(這只是更換其連接到該tabcontent佈局的內容選項卡的內容目前選定的標籤),我希望在標籤中添加標籤參數替換函數會做到這一點,但它不會(它究竟做了什麼?因爲它不會做任何不同的事情,所以當我不使用它時)。

是我唯一的選擇,以編程方式更改選項卡上的usertab之前,我提交交易或有沒有更好的辦法?

(這是我第一次玩弄與周圍的方式在整個片段現象)

回答

0

您應該更改爲FragmentTabHost與TabLayout一個viewpager配對,這是一個很好的example;如果您無法替換fragmentTabHost,我建議您在沒有.replace()的情況下執行碎片交易,因爲它在彈出可能是您現在看到的問題的背層交易時具有意外行爲