यहाँ मैं एक PopupWindow
कैसे बना दिया गया है:PopupWindow पृष्ठभूमि कभी कभी हो जाता है, पारदर्शी और बैंगनी
private static PopupWindow createPopup(FragmentActivity activity, View view)
{
PopupWindow popup = new PopupWindow(view, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);
popup.setOutsideTouchable(true);
popup.setFocusable(true);
popup.setBackgroundDrawable(new ColorDrawable(Tools.getThemeReference(activity, R.attr.main_background_color)));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
popup.setElevation(Tools.convertDpToPixel(8, activity));
PopupWindowCompat.setOverlapAnchor(popup, true);
return popup;
}
main_background_color
, एक ठोस रंग, सफेद या काले रंग है विषय पर निर्भर करता है। कभी-कभी निम्न होता है:
मैं इस से बच सकते हैं? इसके साथ एमुलेटर में होता है एंड्रॉयड 6 कभी कभी केवल उदाहरण के लिए ... आम तौर पर, PopupWindow
पृष्ठभूमि के रूप में हालांकि उम्मीद
साथ ही, यहां मेरी getThemeReference
विधि से काम करती है ...
संपादित करें:
public static int getThemeReference(Context context, int attribute)
{
TypedValue typeValue = new TypedValue();
context.getTheme().resolveAttribute(attribute, typeValue, false);
if (typeValue.type == TypedValue.TYPE_REFERENCE)
{
int ref = typeValue.data;
return ref;
}
else
{
return -1;
}
}
संपादित करें 2 - इस समस्या का समाधान हो सकता है: getThemeColor
getThemeReference
के बजाय
public static int getThemeColor(Context context, int attribute)
{
TypedValue typeValue = new TypedValue();
context.getTheme().resolveAttribute(attribute, typeValue, true);
if (typeValue.type >= TypedValue.TYPE_FIRST_COLOR_INT && typeValue.type <= TypedValue.TYPE_LAST_COLOR_INT)
{
int color = typeValue.data;
return color;
}
else
{
return -1;
}
}
कृपया अपनी 'getThemeReference' विधि पोस्ट करें। –
हो गया। फिर भी, मुझे विश्वास नहीं है कि समस्या का कारण वहां है, क्योंकि इसका मतलब यह होगा कि यह समस्या हमेशा होती है, लेकिन यह केवल दुर्लभ हो रही है (और अब तक, मैंने इसे केवल एंड्रॉइड 6 पर देखा है) – prom85