2014-11-22 18 views
11

Le finestre di dialogo a schermo intero nella progettazione del materiale dovrebbero avere le azioni di conferma e di esclusione sulla barra delle azioni/sulla barra degli strumenti.Azione di conferma della finestra a schermo intero Android e azioni di cancellazione

Material design fullscreen dialog

La mia domanda, come posso fare questo?

Per mostrare la finestra di dialogo:

getFragmentManager().beginTransaction() 
    .add(R.id.container, new MyDialogFragment()) 
    .addToBackStack(null).commit(); 

mia finestra frammento:

public class MyDialogFragment extends DialogFragment { 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.fragment_layout, container, false); 
    } 
} 
+1

cosa fa il tuo layout di file di assomigliare? Ho problemi a creare una finestra di dialogo a schermo intero e sembra che tu ci sia riuscito. – Jon

+0

Puoi approfondire su quale difficoltà stai vivendo? Il layout stesso dovrebbe essere semplice o complesso, vuoi che sia, presumo che tu abbia fatto dei layout per attività e frammenti. L'unica differenza visiva per una finestra di dialogo a schermo intero sono le aree che ho evidenziato in rosso. – SunnySydeUp

+0

Penso che questa domanda (http://stackoverflow.com/questions/30684312/android-full-screen-dialog-callback-issue) lo riassuma bene. Di default la finestra di dialogo non è a schermo intero. – Jon

risposta

19

Solo due cose devono essere fatte:

  • Modificare il up icona
  • Add un menu per il frammento

Modifica icona:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setHasOptionsMenu(true); 
    ((ActionBarActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    ((ActionBarActivity) getActivity()).getSupportActionBar().setHomeAsUpIndicator(android.R.drawable.ic_menu_close_clear_cancel); 
} 

Aggiungi Salva menù:

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.save_menu, menu); 
} 

R.menu.save_menu:

<?xml version="1.0" encoding="utf-8"?> 
<menu 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:id="@+id/save 
     app:showAsAction="always|withText" 
     android:title="@string/save"/> 
</menu> 
+0

Non si dovrebbe ripristinare la barra di azione dell'attività quando la finestra di dialogo viene chiusa? – Gonzalo

Problemi correlati