2

我正在工作或應用程序中,我有viewpager和浮動動作按鈕(fab)4片段。當我點擊fab時,會出現3個subfabs。他們每個人開始不同的活動,用戶可以從不同的片段搜索數據。是否有可能設置晶圓廠,如果我點擊它,而我在第一個片段,它會打開一個活動,在這個片段內搜索,onClick裏面第二 - 搜索第二等。問題是,現在點擊子晶圓廠,而我在一些片段,我可以從另一個片段搜索數據,這有點奇怪。我明白的問題是有點兒奇怪,如果有任何不明白,我將解釋進一步是否有可能爲浮動動作按鈕設置不同的動作以便區分不同的片段?

回答

8

您可以使FAB按鈕公開並在每個片段中實現onClick偵聽器。 您應該覆蓋setUserVisibleHint並將您的代碼onResume因此getActivity()將不會返回null。 Fab按鈕在不同的片段中會有不同的動作。

下面是一個例子,每一個片段裏面,當你想的Fab點擊收聽:

@Override 
public void setUserVisibleHint(boolean visible) 
{ 
    super.setUserVisibleHint(visible); 
    if (visible && isResumed()) 
    {    
     onResume(); 
    } 
} 

@Override 
public void onResume() 
{ 
    super.onResume(); 
    if (!getUserVisibleHint()) 
    { 
     return; 
    } 

    MainActivity mainActivity = (MainActivity)getActivity(); 
    mainActivity.fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //Do what you want 
     } 
    }); 
} 
1

可以在浮動其中片段當前打開的動作按鈕並調用它的onclick方法檢查。

致電findFragmentById()FragmentManager並確定哪個片段在您的R.id.frameTitle容器中。

相關問題