Ho bisogno di creare una finestra di dialogo su un frammento (che occupa l'intero schermo). La finestra di dialogo deve essere una finestra mobile che verrà posizionata sul frammento con il frammento oscurato all'esterno del frammento.Impossibile rendere trasparente il DialogFragment personalizzato sul frammento
Per la finestra di dialogo personalizzata, ho un layout lineare con bordi curvi, indipendentemente da ciò che faccio, la finestra di dialogo ha un bordo nero confinante su tutti i lati (molto piccolo). Ho provato di tutto per renderla trasparente e andare via (in modo che tutto il dialogo è solo il layout lineare - scatola di curva)
Per la DialogFragment, questo è quello che ho per onCreateView
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
LinearLayout layout =(LinearLayout)inflater.inflate(R.layout.custom_dialog, null);
LinearLayout item = (LinearLayout)layout.findViewById(R.id.display_item);
populateItemData(item, inflater);
return layout;
}
custom_dialog è solo un LinearLayout che ha Android: backgroung impostato # 000000
Questo è il mio stile per la finestra di dialogo personalizzato
<style name="CustomDialog" parent="android:style/Theme.Dialog">
<item name="android:windowBackground">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:alwaysDrawnWithCache">false</item>
<item name="android:windowContentOverlay">@null</item>
</style>
ho provato tutti i tipi di combinazioni in questo stile (da quello che ho visto online) e non riesco a liberarmi di quel fastidioso bordo nero, posso dipingerlo di bianco o di qualsiasi altro colore se ho impostato lo sfondo di LinearLayout su qualcosa di diverso da # 000000 ...
ho passato letteralmente 3-4 ore su questo, spero che qualcun altro può dare una mano ...
Si potrebbe anche voler rimuovere lo sfondo nero semitrasparente (oscuramento), controllare questa risposta: http://stackoverflow.com/a/33800422/2115904 –
Tende ad avere più senso se scritto come: 'getDialog(). getWindow(). setBackgroundDrawable (new ColorDrawable (Color.TRANSPARENT)); ' – IcyFlame
Rimuove anche tutti i margini. La finestra di dialogo viene espansa a larghezza intera. – Uday