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容器中。

相关问题