Тяжесть TextView не работает с ивритом
У меня есть TextView на иврите, что я хочу быть на правой стороне, так что я делаю
<TextView....
android:gravity="right"
</TextView>
На некоторых телефонах он будет выровнен по правому краю, а на некоторых он будет выровнен влево.
Я думаю, это зависит от конфигурации телефона.
Как я могу это исправить??
Спасибо.
Ответы
Ответ 1
Это может быть проблемой. Если на странице не сообщается об этом, сообщите об этом.
Теперь вы можете попробовать исправить его, разместив TextView
внутри ViewGroup
.
Используйте wrap_content
и layout_gravity
, чтобы правильно разместить его внутри родителя.
Ответ 2
В настоящее время Android не поддерживает текст BiDi. Некоторые производители взломали его, но пока это стандартная часть платформы, вы можете ожидать, что любое использование текста BiDi приведет к непоследовательному, сломанному поведению. К сожалению.
Ответ 3
Android: Gravity
может работать неправильно, если android:layout_height
или android:layout_weight
установлен на wrap_content
.
Ответ 4
Я нашел решение. Если ваш текст находится на иврите, вам не нужно устанавливать гравитацию, потому что он будет выровнен без него. Я пришел к этому, увидев латинские символы в моих взглядах, которые были справа. Хотя в редакторе макетов SDK все еще есть ошибка.
Протестировано на LG GT540 и Samsung Galaxy S
Ответ 5
если вы хотите, чтобы текст был выровнен вправо, попробуйте использовать это:
textView.setText("\u200F"+content);
Ответ 6
Это происходит потому, что старые версии для Android не слишком хорошо поддерживают rtl.
Для меня то, что работало в конечном итоге, было веб-просмотром.
Потому что тогда я просто использовал CSS для разработки своего текста.
Вам также понадобится onTouchListener, если вы хотите что-то сделать при нажатии
измените свой TextView на Webview:
<WebView
android:id="@+id/noticetit"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
Мой код:
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;
}
});
}
Надеюсь, это поможет вам!
Ответ 7
Я думаю, что это то, что вы ищете:
android:layout_gravity="right"