2015-12-11 12 views
6

मेरे पास FragmentDialog के साथ एक गतिविधि है। इस संवाद के onResume में मैं कोड से ऊंचाई और 80% और 90% करने के लिए इसे का वजन सेट:मैं FragmentDialog के तहत स्नैकबार कैसे दिखा सकता हूं?

WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(); 
layoutParams.copyFrom(getDialog().getWindow().getAttributes()); 
layoutParams.width = (int)(screenWidth * 0.9); 
layoutParams.height = (int)(screenHeight * 0.8); 

getDialog().getWindow().setAttributes(layoutParams); 

यह पूरी तरह से काम करता है, पृष्ठभूमि छाया, अग्रभूमि FragmentDialog उचित आयाम है। प्रश्न यह है कि - स्क्रीन के नीचे SnackBar कैसे दिखा सकता है जो FragmentDialog (छाया, गतिविधि दृश्य) में छाया के बिना प्रभावित नहीं है? FragmentDialog की पृष्ठभूमि में विशिष्ट गतिविधि के लिए छाया को अक्षम करने का कोई तरीका है?

+0

क्या आपको कोई रास्ता मिल रहा है? – Shirane85

+0

@ Shirane85 nope ... – KWA

उत्तर

1

सामग्री डिजाइन प्रलेखन "Snackbars appear above most elements on screen, and they are equal in elevation to the floating action button. However, they are lower in elevation than dialogs, bottom sheets, and navigation drawers" कहता है। वहां से, मुझे लगता है कि आपको Snackbar को DialogFragment के अंदर प्रदर्शित करने पर विचार करना चाहिए या बस इसके ऊपर एक छोटा सा संवाद प्रदर्शित करना चाहिए।

आप संवाद टुकड़ा अंदर Snackbar प्रदर्शित करना चाहते हैं, तो आप इस तरह कुछ कर सकता है:

public void showSnackBar(final View parent, final String text) { 
    Snackbar sb = Snackbar.make(parent, text, Snackbar.LENGTH_LONG); 
    sb.show(); 
} 
  • नोट: parent पूरे संवाद का दृश्य है। आप CoordinatorLayout के टुकड़े के मूल दृश्य को बनाकर और Snackbar को उस दृश्य पर दिखाकर इसे बेहतर बना सकते हैं।
+1

मेरा सवाल था कि मैं छाया कैसे अक्षम कर सकता हूं, मुझे स्नैकबार कंस्रेशन के बारे में पता है ... – KWA

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