我使用自定义EditText在软键盘中使用发送选项保存多行文本。它工作正常,但我的标签栏与键盘一起移动到顶部。我在清单文件中使用了以下内容。
android:windowSoftInputMode="adjustPan"
android:windowSoftInputMode="adjustResize"
这些适用于普通的EditText。但如果我使用CustomEditText,则失败。
这是我的xml:
<com.sample.helpers.CustomEditText
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:hint="Description"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textSize="16dp"
android:id="@+id/et_description"
/>
我的自定义EditText类:
public class CustomEditText extends EditText {
public CustomEditText(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public CustomEditText(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public CustomEditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
InputConnection connection = super.onCreateInputConnection(outAttrs);
int imeActions = outAttrs.imeOptions&EditorInfo.IME_MASK_ACTION;
if ((imeActions&EditorInfo.IME_ACTION_NEXT) != 0) {
// clear the existing action
outAttrs.imeOptions ^= imeActions;
// set the DONE action
outAttrs.imeOptions |= EditorInfo.IME_ACTION_NEXT;
}
if ((outAttrs.imeOptions&EditorInfo.IME_FLAG_NO_ENTER_ACTION) != 0) {
outAttrs.imeOptions &= ~EditorInfo.IME_FLAG_NO_ENTER_ACTION;
}
return connection;
}
}
截图:
所以,请指导我如何处理。
答案 0 :(得分:1)
在Java代码中尝试此操作
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);