2015-01-16 12 views
7

वास्तव में, मैं एफएबी के इनबॉक्स की नकल करने का एक तरीका खोजता हूं। जब उपयोगकर्ता लाल बटन दबाता है, तो एक ओपेक दृश्य और मेनू दिखाना चाहिए। चूंकि आकृतियां अधिक और अधिक सार्थक कर रहे हैं, मैं जानता हूँ कि यह इस अद्भुत पुस्तकालय (https://github.com/futuresimple/android-floating-action-button) और इस पुस्तकालय के साथ, मैं चल कार्रवाई मेनू प्रदर्शित कर सकते हैं मौजूद है निम्न चित्रफ़्लोटिंग एक्शन बटन और सफेद पृष्ठभूमि

enter image description here

देखते हैं। लेकिन मेरी समस्या सफेद पृष्ठभूमि (अस्पष्टता के साथ) प्रदर्शित कर रही है। मैं अपने समस्या को हल करने के लिए एक समाधान नहीं मिला ... अग्रिम में

Thx

उत्तर

15

प्लेस FrameLayout कि अन्य दृश्यों के शीर्ष पर होगा और चौड़ाई और ऊंचाई में माता-पिता से मेल खाएगी अंदर FloatingActionMenu। तदनुसार मेनू से ऊपर उठाने और ऑफसेट करने के लिए समान मार्जिन का उपयोग करें।

अपने फ़्लोटिंग एक्शन मेनू में OnFloatingActionsMenuUpdateListener सेट करें। अब विधियों के अंदर फ्रेम लेआउट पृष्ठभूमि रंग को टॉगल/प्रतिस्थापित करें:

@Override 
void onMenuExpanded(){ 
    mFrameLayoutWrapper.setBackgroundColor(mAlpaWhite); 
    } 

    @Override 
    void onMenuCollapsed(){ 
    mFrameLayoutWrapper.setBackgroundColor(Color.TRANSPARENT); 
    } 
+2

मैं फ्रैगमेंट में फ़्लोटिंगएक्शनमेनू प्रदर्शित कर रहा हूं और उपरोक्त समाधान का उपयोग करके एक्शन बार ओवरले नहीं करता है। किसी भी विचार को पूर्ण स्क्रीन पर ओवरले कैसे प्राप्त करें? –

+1

@Pawanकुमार आपको फ्रैगमेंट में समस्या का सामना करना पड़ेगा। या तो ओवरले दृश्य खंड के पीछे होगा या सबकुछ पर शीर्ष होगा। एफएबी भी ओवरलैड होगा। गतिविधि में एफएबी का उपयोग करना बेहतर होगा। –

0

मैंने आपके द्वारा अभी तक निम्न विधि द्वारा उल्लिखित प्रभाव प्राप्त किया है। मैंने अभी फ़्लोटिंग बटन के पीछे और अन्य लेआउट के ऊपर एक दृश्य जोड़ा है, और दृश्य दृश्यता को तब तक रखा है जब तक कि मेनू का विस्तार नहीं हो जाता। फिर मैंने दृश्य दृश्यता को दृश्यमान पर सेट किया। और हाँ, मैंने दृश्य की पृष्ठभूमि को आपके इच्छित अपारदर्शी रंग पर सेट किया है।

मेरे कोड

मेरे एक्सएमएल फ़ाइल

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:fab="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<TextView 
    android:text="Other View here" 
    android:textSize="50dp" 
    android:layout_centerHorizontal="true" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

<View 
    android:id="@+id/background_dimmer" 
    android:visibility="gone" 
    android:background="#55000000" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/> 

<com.getbase.floatingactionbutton.FloatingActionsMenu 
    android:id="@+id/multiple_actions" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 
    fab:fab_addButtonColorNormal="@color/white" 
    fab:fab_addButtonColorPressed="@color/white_pressed" 
    fab:fab_addButtonPlusIconColor="@color/half_black" 
    fab:fab_labelStyle="@style/menu_labels_style" 
    android:layout_marginBottom="16dp" 
    android:layout_marginRight="16dp" 
    android:layout_marginEnd="16dp"> 

    <com.getbase.floatingactionbutton.FloatingActionButton 
     android:id="@+id/action_a" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     fab:fab_colorNormal="@color/white" 
     fab:fab_title="Action A" 
     fab:fab_colorPressed="@color/white_pressed"/> 

</com.getbase.floatingactionbutton.FloatingActionsMenu> 

और गतिविधि या टुकड़ा जहां FloatingButtons

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_map); 
    setFloatingButtonControls(); 
} 

private void setFloatingButtonControls(){ 
    this.bckgroundDimmer = findViewById(R.id.background_dimmer); 
    this.floatingActionsMenu = (FloatingActionsMenu) findViewById(R.id.multiple_actions); 
    this.floatingActionsMenu.setOnFloatingActionsMenuUpdateListener(new FloatingActionsMenu.OnFloatingActionsMenuUpdateListener() { 
     @Override 
     public void onMenuExpanded() { 
      bckgroundDimmer.setVisibility(View.VISIBLE); 
     } 

     @Override 
     public void onMenuCollapsed() { 
      bckgroundDimmer.setVisibility(View.GONE); 
     } 
    }); 
} 

यह नियंत्रित किया जाता है प्रभाव आप चाहते थे दे देंगे पर। उम्मीद है की यह मदद करेगा। यह निश्चित रूप से मेरी मदद की। :)

0

टूलबार, फ़्लोटिंग मेनू, आपकी सामग्री और रिश्तेदार लेआउट के साथ एक समन्वयक लेआउट लें। सापेक्ष लेआउट के पृष्ठभूमि रंग को सफेद पारदर्शी पर सेट करें और इसे देखने के लिए इसकी दृश्यता सेट करें। गतिविधि में एक्शन बार के बजाय "NoActionBar" थीम सेट करें और टूलबार का उपयोग करें। अब जब भी आप फ़्लोटिंग मेनू खोलते हैं, तो रिलेवेटिव लेआउट की दृश्यता को दृश्यमान और बंद सेट पर वापस सेट करें।

संबंधित मुद्दे