2012-05-06 12 views
8

Sto scrivendo un'app in ebraico (che è rtl). quando imposto il titolo per il frammento della finestra di dialogo appare a sinistra. Ho provato a farlo visualizzare a destra facendo:imposta il titolo del frammento della finestra di dialogo per visualizzare da destra

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) 
{ 
    //set's up the title for this dialog fragment 
    getDialog().getWindow().setGravity(Gravity.RIGHT); 
    getDialog().setTitle(R.string.find_Address_text); 

ma non influenza la posizione del titolo. come posso ottenere questo? TNX

+0

Ho utilizzato questo metodo: http://stackoverflow.com/questions/14439538/how-can-i-change-the-color-of-alertdialog-title-and-the-color-of-the-line- sotto/23278774 # 23278774 –

risposta

18

Nascondere il titolo predefinito e crearne uno personalizzato nel layout.

Per nascondere il titolo predefinito:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setStyle(STYLE_NO_TITLE, 0); // remove title from dialogfragment 
} 

quindi aggiungere un TextView alla parte superiore del layout con il tuo stile preferito:

<TextView 
android:id="@+id/dialog_title" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:gravity="right|center" 
android:text="@string/dialog_title" /> 
+3

+1 per setStyle (STYLE_NO_TITLE) –

+0

La domanda da 2 centesimi è: come sarebbe possibile suddividere il tema in questa vista come un vero titolo di una finestra di dialogo? e usa il tema del telefono? –

+0

@Waza_Be Personalmente ora sto usando HoloEverywhere per le mie app in modo che il tema generale sia lo stesso tra le varie API. A parte questo, l'unica cosa che riesco a pensare è che tu possa fare una copia della vista del titolo se riesci a trovarla (android.Rometal) dall'API e poi imposta la gravità. Non so per certo che sia possibile. – Samutz

6

So che questo è un vecchio filo con una risposta. Ma per altre persone che possono avere la stessa domanda:

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    Dialog dlg = super.onCreateDialog(savedInstanceState); 

    dlg.setTitle("Title"); 
    TextView titleTextView = (TextView) dlg.findViewById(android.R.id.title); 
    titleTextView.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL); 

    return dlg; 
} 

In questo modo abbiamo la barra del titolo e non abbiamo bisogno di fare uno personalizzato.

Problemi correlati