2011-04-05 18 views
11

tengo TextView en hebreo que yo quiero estar en el lado derecho, por lo que estoy haciendoTextView gravedad no trabaja con el hebreo

<TextView.... 
    android:gravity="right" 
</TextView> 

En algunos teléfonos que se orientará hacia la derecha y en algunos será estar alineado a la izquierda. Creo que depende de la configuración de algunos teléfonos. ¿Cómo puedo solucionarlo?

Gracias.

Respuesta

-1

creo que esto es lo que está buscando:

android:layout_gravity="right" 
+2

Esto es _no_ lo que OP está buscando. 'android: layout_gravity' sugiere dónde debe colocarse una vista dentro de su principal. 'android: gravity' se supone que controla cómo un TextView alinea su texto cuando el texto es más estrecho o más corto que la vista. –

3

Esto podría ser un problema. Si no está en el issue page de Android, considere informarlo.

Por ahora puedes intentar arreglarlo colocando el TextView dentro de un ViewGroup. Use wrap_content y layout_gravity para colocarlo correctamente dentro de su matriz.

1

Android actualmente no es compatible con texto BiDi. Algunos fabricantes lo han pirateado, pero hasta que esta sea una parte estándar de la plataforma, puede esperar que cualquier uso de texto BiDi dé como resultado un comportamiento incoherente y quebrado. Lo siento.

+0

¿Hay una bandera que indique si una determinada manufactura ha pirateado esto? – isep

+0

Tendría que preguntarle a su fabricante. – hackbod

0

He encontrado la solución. Si tu texto está en hebreo, no necesitas establecer la gravedad, porque estaría alineado sin él. Llegué a esto cuando vi símbolos latinos en mis puntos de vista, que estaban a la derecha. Sin embargo, todavía hay errores en el editor de diseño de SDK.

probado en LG GT540 y Samsung Galaxy S

1

Android: Gravity podría no funcionar correctamente en caso de android:layout_height o android:layout_weight se establece en wrap_content.

0

si desea que el texto que se va alineado a la derecha, trate de usar esto:

textView.setText("\u200F"+content); 
0

Esto sucede porque las versiones anteriores de Android no son compatibles con RTL demasiado bien. Para mí, lo que finalmente funcionó fue una vista web. Porque entonces acabo de usar CSS para diseñar mi texto. Usted también necesitará un onTouchListener si usted quiere que haga algo cuando se hace clic

cambio de su TextView a Webview:

<WebView 
     android:id="@+id/noticetit" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

Mi código:

WebView webView = (WebView) findViewById(R.id.noticetit); 
private void setWebView() { 
      String htmlcss = "<html lang=\"he\"><head><meta charset=\"utf-8\" />" 
        + "<style type=\"text/css\">.rtl {direction: rtl;color:black;font:20px arial;}</style></head>" 
        + "<body class=\"rtl\"><div class=\"rtl\">" + webView 
        + "</div></body></html>"; 

      webView.loadDataWithBaseURL(null, htmlcss, "text/html", "utf-8", null); 
      webView.setOnTouchListener(new OnTouchListener() { 
       // Removed @Override 
       public boolean onTouch(View v, MotionEvent event) { 
        if (v.getId() == R.id.maintitle 
          && event.getAction() == MotionEvent.ACTION_DOWN) { 
         //Put your code here 
        } 
        return false; 
       } 
      }); 
     } 

la esperanza que esto te ayuda!