我想知道你是否可以控制EditText上的输入从右向左移动? EditText也必须支持从右到左的插入/删除等。有没有办法做到这一点?
答案 0 :(得分:18)
将此添加到您的editText
android:textDirection="rtl"
答案 1 :(得分:13)
听起来你只需要将重力设置在右边。
答案 2 :(得分:7)
请使用:
android:layout_gravity="start"
android:textAlignment="viewStart"
答案 3 :(得分:2)
试试这段代码
//initialize
EditText userName = (EditText)findViewById(R.id.userName);
//set gravity for userName
userName.setGravity(Gravity.RIGHT);
答案 4 :(得分:0)
使用以下代码可以通过手动方式完成此操作:
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
// Each time click Menu button on the bar
// Set the cursor to the first index
mEtEmail.setSelection(0); // YOUR EDIT TEXT
}
return super.onKeyUp(keyCode, event);
}
p / s:或者您可以更改
KeyEvent.KEYCODE_MENU
按照您的意愿,
或者您可以尝试使用Bidi。
谢谢,
答案 5 :(得分:0)
您可以在xml中添加到您的编辑文本中
从左到右:
android:textDirection="firstStrongLtr"
从右到左:
android:textDirection="firstStrongRtl"
答案 6 :(得分:0)
正确的方法是使用:
android:textAlignment="viewStart"
因为它将自动用于LTR和RTL。
答案 7 :(得分:0)
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_supporter_last_name"
style="@style/TextInputEditText"
android:gravity="right"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableEnd="@drawable/ic_person_black_24dp"
android:inputType="text"
android:drawablePadding="@dimen/default_margin"
android:maxLength="10"
android:padding="@dimen/default_margin" />
输出:
答案 8 :(得分:-1)
试试这个......
初始化用户名和密码字段。
EditText username = (EditText) findViewById(R.id.username);
EditText password = (EditText) findViewById(R.id.password);
获取阿拉伯语等的RTL语言的当前语言环境。
String getCurrentLocale = Locale.getDefault().getDisplayLanguage();
然后我们应该检查为RTL或LTR选择哪种语言。
if(getCurrentLocale.equalEgnoreCase("English")){ //LTR languages
username.setGravity(Gravity.Left);
password.setGravity(Gravity.Left);
}else{ //RTL languages
username.setGravity(Gravity.Right);
password.setGravity(Gravity.Right);
}
快乐的编码......!
答案 9 :(得分:-1)
尝试以下代码
AutoCompleteTextView autoCompleteTextView = findViewById(R.id.main_searchBar);
autoCompleteTextView.setGravity(Gravity.RIGHT);