2012-05-06 17 views
8

Estoy escribiendo una aplicación en hebreo (que es rtl). cuando configuro el título para el fragmento de diálogo, aparece a la izquierda. Traté de hacer que se vea a la derecha haciendo:establecer el título del fragmento de diálogo para mostrar desde la derecha

@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); 

pero que no afecta a la posición del título. ¿cómo puedo lograr esto? TNX

+0

Utilicé este método: http://stackoverflow.com/questions/14439538/how-can-i-change-the-color-of-alertdialog-title-and-the-color-of-the-line- en/23278774 # 23278774 –

Respuesta

18

Oculta el título predeterminado y crea uno personalizado en el diseño.

Para ocultar el título predeterminado:

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

continuación, agregar un TextView a la parte superior de diseño con su estilo preferido:

<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 para setStyle (STYLE_NO_TITLE) –

+0

La pregunta de 2 centavos es: ¿Cómo sería posible enmarcar esta vista como un título de diálogo real? y usa el tema del teléfono? –

+0

@Waza_Be Personalmente, ahora estoy usando HoloEverywhere para mis aplicaciones, de modo que el tema general sea el mismo en todas las API. Aparte de eso, lo único que se me ocurre es que tal vez puedas hacer una copia de la vista del título si puedes encontrarla (android.R.something) desde la API y luego establecer la gravedad. Sin embargo, no estoy seguro de que eso sea posible. – Samutz

6

Sé que esto es un hilo de edad con una respuesta. Sin embargo, para otras personas que puedan tener la misma pregunta: ¿

@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; 
} 

esta manera tenemos barra de título y que no es necesario hacer una personalizada.

Cuestiones relacionadas