【问题标题】:Android - Floating Action Button over the top of a Google MapAndroid - 谷歌地图顶部的浮动操作按钮
【发布时间】:2015-12-02 02:39:22
【问题描述】:

当我将浮动操作按钮放在 Google 地图的顶部时,它会阻止我与地图进行交互。

布局是 match_parent 的高度和宽度,所以 FAB 占据了整个屏幕,但它在我的其他 Fragment(没有 Google Maps)上也是如此,我可以与这些 FAB 后面的视图进行交互。当 FAB 位于带有 Google 地图的 Fragment 上时,我无法与 FAB 后面的任何视图交互。

我正在使用这个浮动操作按钮: https://github.com/Clans/FloatingActionButton

有没有人可以解决这个问题?

【问题讨论】:

  • 嘿,请在此处粘贴您的 xml 代码 :-)
  • 这里是 xml:pastebin.com/pKGAJKM5
  • 只是问......你想要多少个浮动操作按钮?
  • 顺便说一句,只需将您的晶圆厂与包装内容放在宽度 n 高度 n 尝试一下,并在您的布局中只有一个晶圆厂供试用
  • 嘿伙计们,我试过了,但它仍然只能让我与 FAB 之外的任何视图进行交互。我在它下面剩下大约 300dp,我可以与地图的那部分进行交互,但不能与 FAB 的 match_parent 宽度内联的任何内容进行交互。 ;(

标签: android google-maps floating-action-button


【解决方案1】:

尝试将android:focusable="false"android:clickable=false 添加到您的FloatingActionButton。但说真的,为什么要让 Floating Action Button 占据整个屏幕?

【讨论】:

  • 实际的按钮并没有占据整个屏幕,它在左上角是 40dp,FAB 有按钮一旦按下就会下拉,这些按钮占据了整个屏幕(虽然是最初隐藏)。因此,当轻按 FAB 时,整个 FAB 的布局和隐藏按钮会占据整个屏幕,所以我整个事情都必须具有 match_parent 的宽度和高度。不过,它适用于我的其他片段,当 FAB 打开和关闭时,FAB 后面的所有内容都可以进行交互。只是当 FAB 后面有一个谷歌地图时,我无法与任何东西交互
【解决方案2】:

所以我最终做的是将片段放入带有 ViewPager 的 Activity 中,并将 FAB 放入该 Activity 的 xml 中,这使我可以与 ViewPager 持有的 Fragment 中的地图进行交互

【讨论】:

    【解决方案3】:

    试过你的代码,我帮不上什么忙,因为你使用了很多我没有的可绘制对象,我建议你将这个库用于浮动操作按钮,我使用的是相同的,它们工作得很好。

    语法是

     <com.melnykov.fab.FloatingActionButton
                android:id="@+id/buttonFloat"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="bottom|right"
                android:layout_margin="16dp"
                android:src="@drawable/abc_ic_menu_share_mtrl_alpha"
                fab:fab_colorNormal="#C2185B"
                fab:fab_colorPressed="#FF4081"
                fab:fab_colorRipple="#F06292" />
    

    compile 'com.melnykov:floatingactionbutton:1.3.0'

    【讨论】:

      【解决方案4】:

      您应该在处理完 FAB 之后并在渲染之前以编程方式添加这些行。

      fabButton.setFocusable(false);
      fabButton.setFocusableInTouchMode(false);
      

      它对我有用。

      【讨论】:

        【解决方案5】:

        您需要将ToggleListener 添加到您的FloatingActionMenu,然后您可以隐藏占据屏幕的按钮。

        fabMenu.setOnMenuToggleListener(new FloatingActionMenu.OnMenuToggleListener() {
                    @Override
                    public void onMenuToggle(boolean opened) {
                        if(opened){
                            fltActsettings.setVisibility(View.VISIBLE);
                            fltActnotifications.setVisibility(View.VISIBLE);
                            fltShowMenu.setVisibility(View.VISIBLE);
                            fltActCreateRequest.setVisibility(View.VISIBLE);
                            fltActHistory.setVisibility(View.VISIBLE);
                        }else{
                            fltActsettings.setVisibility(View.GONE);
                            fltActnotifications.setVisibility(View.GONE);
                            fltShowMenu.setVisibility(View.GONE);
                            fltActCreateRequest.setVisibility(View.GONE);
                            fltActHistory.setVisibility(View.GONE);
                        }
                    }
                });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-10-23
          • 2017-10-13
          • 1970-01-01
          • 2016-06-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多