5

Ecco come ho chiamato il mio DialogFragment:rimuovere sfondo bianco in dialogfragment

DialogSelectAccount myDiag=new DialogSelectAccount(); 
myDiag.show(ft,"Diag"); 

Ecco come (in parte) è stato creato il mio DialogFragment:

public class DialogSelectAccount extends DialogFragment { 
public DialogSelectAccount() { 

    } 

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setRetainInstance(true); 
} 

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.dialog_select_account, container, false); 
tvMessage = (TextView) rootView.findViewById(R.id.tvMessage); 
     btnAccountPublic = (Button) rootView.findViewById(R.id.btnAccountPublic); 
     btnAccountEnterprise = (Button) rootView.findViewById(R.id.btnAccountEnterprise); 
     tvMessage.setText(message); 
     btnAccountPublic.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Login.setAccountType = 2; 
       dismiss(); 
      } 
     }); 
     btnAccountEnterprise.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Login.setAccountType = 1; 
       dismiss(); 
      } 
     }); 
     return rootView; 
    } 

Ed ecco il xml per la mia DialogSelectAccount

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#ff26b4e9" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/tvMessage" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:layout_margin="10dp" 
     android:textColor="@android:color/black" 
     android:textSize="15dp" 
     android:textAlignment="center" 
     android:gravity="center_horizontal" 
     android:background="#ff26b4e9" 
     android:autoText="true"> 
    </TextView> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:background="#ff26b4e9" 
     android:orientation="horizontal" > 

     <Button 
      android:id="@+id/btnAccountPublic" 
      android:layout_width="150dp" 
      android:layout_height="wrap_content" 
      android:clickable="true" 
      android:text="@string/accountPub" 
      android:textColor="#ffffffff" 
      android:background = "@drawable/roundedbutton" /> 

     <Button 
      android:id="@+id/btnAccountEnterprise" 
      android:layout_width="150dp" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="5dp" 
      android:clickable="true" 
      android:text="@string/accountEnt" 
      android:textColor="#ffffffff" 
      android:background = "@drawable/roundedbutton" /> 
    </LinearLayout> 

</LinearLayout> 

il problema è che è sempre visualizzato un sfondo bianco e ingrigito, come mostrato di seguito. Come lo rimuovo?

enter image description here

+1

possibile duplicato di [Come creare un DialogFragment senza titolo?] (Http://stackoverflow.com/questions/15277460/how-to-create-a-dialogfragment-without-title) –

+0

@ imin: hai visto la mia risposta? –

+0

@ Y.S. scusate sono legato ad un altro progetto ora .. tornerò a questo progetto entro questo fine settimana e vi darò la mia risposta. grazie – imin

risposta

13

Nel onCreateView() del vostro DialogFragment, sostituire

View rootView = inflater.inflate(R.layout.dialog_select_account, container, false); 

con

View rootView = inflater.inflate(R.layout.dialog_select_account, container); 

Inoltre, aggiungere questo al onViewCreated():

getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE); 
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 
setStyle(DialogFragment.STYLE_NO_FRAME, android.R.style.Theme); 

e il più esterno LinearLayout del XML, cambio

android:layout_width="fill_parent" 
android:layout_height="fill_parent" 

a

android:layout_height="wrap_content" 
android:layout_width="wrap_content" 

Prova questo. Questo dovrebbe funzionare.

+0

Sono andato con la soluzione fornita su http://stackoverflow.com/questions/15277460/how-to-create-a-dialogfragment-without-title, ma da quando ho testato e anche il tuo funziona, lo contrassegnerò come risposta. – imin

+0

potresti anche voler rimuovere lo sfondo nero semitrasparente (oscuramento), controlla questa risposta: http://stackoverflow.com/a/33800422/2115904 –

1

È possibile creare stile per la finestra di dialogo:

<style name="DialogStyle" parent="Base.Theme.AppCompat.Dialog"> 
    <item name="android:windowNoTitle">true</item> 
</style> 

e utilizzarlo nel codice con il metodo:

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    return new Dialog(getActivity(), R.style.DialogStyle); 
} 

Oppure si può impostare FEATURE_NO_TITLE per il dialogo solo nella vostra codice come mostrato nel codice qui sotto:

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    Dialog dialog = super.onCreateDialog(savedInstanceState); 
    dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); 
    return dialog; 
} 
0

Qui penso che stai cercando di nascondere la barra del titolo. Utilizzare questa

getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);