【问题标题】:How to close a fragment on clicking floating action button如何在单击浮动操作按钮时关闭片段
【发布时间】:2017-06-30 16:47:32
【问题描述】:

我正在尝试实现一个 fab 操作,一旦单击该操作会启动一个片段,然后再次触摸会关闭该片段。我该怎么做。

这是我的代码:

final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            /*Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();*/

            NewOrdersFragment newOrdersFragment = new NewOrdersFragment();

            if(isOpen){
                fab.startAnimation(FabRanticlockwise);
                FragmentManager orderManager = getSupportFragmentManager();
                orderManager.beginTransaction().remove(newOrdersFragment);
                isOpen = false;
            }

            else{
                fab.startAnimation(FabRClockwise);
                FragmentManager orderManager = getSupportFragmentManager();
                orderManager.beginTransaction().replace(R.id.content_buyer_main_area, newOrdersFragment).commit();
                isOpen = true;
            }
        }
    });

【问题讨论】:

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


【解决方案1】:
beginTransaction().remove(yourFragment)

beginTransaction().detatch(yourFragment)

对你的情况很方便。

【讨论】:

  • 我都试过了,但都没有用,片段保持原样
  • 问题是你每次都传递一个新的片段实例。尝试启动一次片段,并在 fragmentTransaction 中使用它。
  • 我也试过这种方法,但还是不行。你能告诉我怎么做吗?
  • 我刚刚看到你编辑的代码。把 "" NewOrdersFragment newOrdersFragment = new NewOrdersFragment(); "" 在 onClick 方法之前的某个地方。在实例化您的浮动操作按钮之后就可以了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-19
  • 1970-01-01
  • 2019-02-04
  • 2019-09-15
  • 1970-01-01
  • 1970-01-01
  • 2017-05-20
相关资源
最近更新 更多