【问题标题】:Is it possible to set different actions for floating action button in differet fragments?是否可以为不同片段中的浮动操作按钮设置不同的操作?
【发布时间】:2015-11-04 07:33:55
【问题描述】:

我正在工作或一个应用程序,其中我在 viewpager 和浮动操作按钮 (fab) 中有 4 个片段。当我点击晶圆厂时,会出现 3 个子晶圆厂。他们每个人都开始不同的活动,用户可以从不同的片段中搜索数据。是否可以设置 fab 以便如果我在第一个片段中单击它,它将打开一个在该片段中搜索的活动,在第二个片段中单击 onClick - 搜索第二个等等。问题是现在单击子当我在某个片段中时,我也可以从另一个片段中搜索数据,这有点奇怪。我知道问题有点奇怪,如果有不清楚的地方我会进一步解释

【问题讨论】:

    标签: android android-fragments android-viewpager floating-action-button


    【解决方案1】:

    您可以公开 FAB 按钮并在每个片段中实现 onClick 侦听器。 您应该重写 setUserVisibleHint 并将您的代码 onResume 以便 getActivity() 不会返回 null。 Fab 按钮在不同的 Fragment 中会有不同的操作。

    这是一个示例,当您需要 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
            }
        });
    }
    

    【讨论】:

      【解决方案2】:

      您可以在浮动操作按钮的onclick方法中查看当前打开的片段并调用它。

      FragmentManager 上调用findFragmentById() 并确定哪个片段在您的R.id.frameTitle 容器中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-04
        • 1970-01-01
        • 1970-01-01
        • 2019-04-23
        • 1970-01-01
        • 2016-07-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多