簡體   English   中英

framelayout如何獲取內容?

[英]framelayout how to get content?

由於必須為應用程序做一個自定義菜單,因此我做了一個片段,它的作用就像是應用程序底部的操作欄!

但是我與堆棧有一些沖突(按返回按​​鈕時)。

我應該如何編程以下方法?

public void changerContenu(int frameLayout, Fragment frag, boolean ajouterAuStack)
{
    if(R.id.frameContent != frag.getId()) 
// * if the current displaying
// fragment in the layout is the same as the one that I received in param#2 (frag),   
// then don't do anything.
    {
        ft = fragmentManager.beginTransaction();

        ft.replace(frameLayout, frag);
        if(ajouterAuStack)
            ft.addToBackStack(null);

        ft.commit();
    }
}

我知道我的“如果”現在沒有任何意義,試圖弄清楚如何達到期望的結果:(現在,當我訪問該片段一次(並將其推入堆棧)時,我無法使用我的按鈕在“自制操作欄”中,直到我多次單擊“后退”按鈕來清潔堆棧。

如果我幾次單擊菜單上的同一按鈕,我只想不復制堆棧中的項目...

多謝你們!

我想更好地理解這個問題。

您有一個類似於動作欄的片段。 如果片段已在顯示,則您無需執行任何操作。 否則,您要顯示它。 您想在什么情況下返回,應該怎么辦?

請注意,底部的單個操作欄與典型的Android設計不符。 用戶可能不了解如何使用您的應用。 我有興趣知道為什么常規的ActionBar對您不起作用。

供以后參考,我以這種方式工作:

public void changerContenu(int frameLayout, Fragment frag, boolean ajouterAuStack, String tag)
{
    ft = fragmentManager.beginTransaction();

    ft.replace(frameLayout, frag);
    if(ajouterAuStack && (fragmentManager.getBackStackEntryCount() == 0 
            || fragmentManager.getBackStackEntryAt(fragmentManager.getBackStackEntryCount()-1).getName() != tag))
        ft.addToBackStack(tag);

    ft.commit();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM