0

如何檢查片段在活動可見OnBackpressed如何檢查片段在活動可見OnBackpressed

我要檢查,當用戶單擊回到Searchfragment按鈕,我想設置OnBackpressed運行,但如果用戶單擊後退按鈕在OtherFragment中我想設置OnBackpressed未運行。

,我試試這個活動中沒有爲您的工作有所幫助

btn_back.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       SearchFragment searchFragment = new SearchFragment(); 
       if (searchFragment.isVisible()){ 
        onBackPressed(); 
       } 

      } 
     }); 

的感謝!

回答

1

首先,當你聲明是這樣的:

SearchFragment searchFragment = new SearchFragment(); 

然後調用

searchFragment.isVisible() 

這顯然返回false因爲你沒有,甚至把它添加到容器中。你需要做的是檢索您已經添加的片段實例,並檢查它的狀態。

我曾經嘗試使用方法isVisible(),但它並不完全準確,至少沒有我的情況。我想出的是檢查容器中的頂部片段如下:

Fragment fragment = getActivity().getSupportFragmentManager().findFragmentById(R.id.fragment_container); 
if(fragment instance of SearchFragment) //means your visible fragment is the SearchFragment 
    onBackPressed(); 
+0

謝謝!這是工作 –

+0

歡迎:) – Ricardo