我有一个多语言应用,当用户点击它时,我希望EditText
向上滑动(屏幕的其余部分),即EditText
每当显示键盘时,始终 在键盘上方可见。
显然,这可以使用android:windowSoftInputMode="adjustResize"
。
不幸的是,只有当应用语言是英语时,这似乎才能正常工作。当用户将应用语言更改为阿拉伯语时,所有操作系统版本低于7.1.1的键盘上方的EditText
幻灯片仅<第一次 。它在Android 7.1.1上按预期工作。
这是Marshmallow 6.0.1及更低版本的已知问题吗?是否存在可以绕过这种情况的黑客攻击或解决方法?
答案 0 :(得分:1)
要解决此问题,您需要创建customEditText和覆盖 这对我有用。
public class CustomEditText extends android.support.v7.widget.AppCompatEditText {
Context context;
public CustomEditText(Context context, AttributeSet attrs) {
super(context, attrs);
this.context = context;
}
@Override
public boolean dispatchKeyEventPreIme(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
public static void hideKeyboard(Context context) {
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.HIDE_NOT_ALWAYS, 0);
}
clearFocus();
}
return false;
}
}
然后将两行添加到xml
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
答案 1 :(得分:0)
一种简单的方法。您可以设置edittext重力以在RTL中显示阿拉伯语,如下所示。在xml或u中都可以动态进行。
在xml中执行此操作
<EditText
android:padding="15dp"
android:layout_width="fill_parent"
android:hint="رمز القسيمة الاختياري"
android:id="@+id/register"
android:textColorHint="#d3d3d3"
android:layout_height="wrap_content"
android:gravity="right"
android:background="@android:color/transparent"
android:textColor="#000000"
android:textSize="14sp"
/>
动态地,您可以这样设置
textmob.setGravity(Gravity.RIGHT); //textmob is object
注意:您可以对textview元素进行