2015-09-06 137 views
2

當我將浮動動作按鈕置於Google地圖頂部時,它會阻止我無法與地圖進行交互。Android - Google地圖頂部的浮動動作按鈕

佈局對於高度和寬度都是match_parent,所以FAB佔據了所有的屏幕,但是在我的其他Fragments(沒有Google Maps)上也是這樣,我可以在這些FAB背後與Views進行交互。當FAB位於帶有Google Map的Fragment上時,我無法與FAB背後的任何視圖進行交互。

我使用這個浮動操作按鈕: https://github.com/Clans/FloatingActionButton

有沒有人有一個解決的辦法?

+0

哎請貼在這裏:-) – penta

+0

此XML代碼是XML:http://pastebin.com/pKGAJKM5 – Nickmccomb

+0

只是問問......有多少浮動的操作按鈕,你想要什麼? – penta

回答

1

嘗試將android:focusable="false"android:clickable=false添加到您的FloatingActionButton。但是,嚴重的是,爲什麼你想讓你的浮動操作按鈕佔據整個屏幕?

+0

實際的按鈕並不佔用整個屏幕,它在左上角40dp,FAB按鈕一旦按下就會下降,而這些按鈕(儘管最初是隱藏的),所以整個FAB和隱藏按鈕的佈局在FAB被挖掘時佔據整個屏幕,所以我必須在寬度和高度上具有match_parent。雖然它在我的其他片段上工作,但當FAB打開和關閉時,FAB後面的所有內容都可以與之交互。正當FAB後面有Google Map,我無法與任何東西進行互動 – Nickmccomb

+0

focusable and clickable = false沒有工作:( – Nickmccomb

1

所以我落得這樣做把片段與ViewPager的活動,並把FAB在XML該活動,這讓我與該ViewPager持有

0

片段中的地圖進行交互嘗試過你的代碼,我不能幫忙,因爲你正在使用的許多可繪製的ñ,我沒有,我建議你使用這個庫浮動動作按鈕,我使用相同的,他們工作得很好。

語法

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

0

您應該添加這些行之後完成編程處理的FAB,它被渲染之前。

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

它適合我。

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); 
       } 
      } 
     });