簡體   English   中英

如何在android中獲取backstack片段條目列表?

[英]How to get a list of backstack fragment entries in android?

我正在開發一個應用程序,其中使用FragmentActivity實現選項卡。 由於整個應用程序都需要選項卡,因此廣泛使用片段來使應用程序與所有版本的 android 兼容。

因此,我在可視化 backstack 上存在哪些片段時遇到了問題。 我確信有一種方法可以檢索 backstack 上存在的片段列表 謝謝。

FragmentManager有方法:

getBackStackEntryCount()

getBackStackEntryAt(整數索引)

FragmentManager fm = getFragmentManager();

for(int entry = 0; entry<fm.getBackStackEntryCount(); entry++){
   Log.i(TAG, "Found fragment: " + fm.getBackStackEntryAt(entry).getId());
}

如果您想檢查哪個片段是可見的,並且您知道放置片段的視圖的 id,首先您必須在 onCreate() 中添加以下內容

    getSupportFragmentManager().addOnBackStackChangedListener(new OnBackStackChangedListener() {

  @Override
  public void onBackStackChanged() {
    Fragment f = getSupportFragmentManager().findFragmentById(R.id.content_frame);
    if (f != null){
      updateActionBarTitle(f);
    }

  }
});

private void updateActionBarTitle(Fragment fragment) {
        String fragClassName = fragment.getClass().getName();

        if (fragClassName.equals(FirstFragment.class.getName())) {
            setTitle("Home");
        } else if (fragClassName.equals(SecondFragment.class.getName())) {
            setTitle("Second");
        }
    }

這將在返回堆棧更改偵聽器上更新您的操作欄標題。

暫無
暫無

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

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