Android - Google地图顶部的浮动操作按钮

时间:2015-09-06 12:14:35

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

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

高度和宽度的布局是match_parent,因此FAB占据了所有屏幕,但它在我的其他片段(没有谷歌地图)上也是如此,我可以与那些FAB背后的Views进行交互。当FAB位于片段上并带有Google Map时,我无法与FAB背后的任何视图进行交互。

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

有没有人有解决方案?

5 个答案:

答案 0 :(得分:1)

尝试将android:focusable="false"android:clickable=false添加到您的FloatingActionButton。但严重的是,为什么你想让你的浮动动作按钮占据整个屏幕?

答案 1 :(得分:1)

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

答案 2 :(得分:0)

尝试了你的代码,我无能为力,因为有许多你使用的绘图我没有,我建议你使用这个库来浮动动作按钮,我使用相同的,他们工作得很好。< / p>

语法是

 <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'

答案 3 :(得分:0)

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

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

它对我有用。

答案 4 :(得分:0)

您需要将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);
                }
            }
        });