标题总结得很好。我请求以EditText
为焦点以编程方式显示软键盘。 EditText
按要求获得焦点,键盘打开,但窗口没有相应调整。单击EditText
可以直接正常工作。
以下是代码:
textView.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFocus) {
if (hasFocus) {
editText.requestFocus();
InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
}
}
});
任何解决方法?
修改
我已经尝试在清单文件中的android:windowSoftInputMode="adjustResize"
上设置android:windowSoftInputMode="adjustPan"
和<activity ..>
。这个伎俩都没有。
编辑2:
<LinearLayout
android:id="@+id/edittext_appendable_layout"
style="@style/PGTheme.EditText.Dark"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:addStatesFromChildren="true"
android:orientation="horizontal"
android:paddingBottom="0dp">
<EditText
android:id="@+id/edittext_appendable_text"
style="@style/PGTheme.EditText.Dark.NoUnderline"
android:layout_width="wrap_content"
android:layout_height="@dimen/view_size"
android:paddingEnd="0dp"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingStart="0dp"/>
<TextView
android:id="@+id/edittext_appendable_textview"
style="@style/PGTheme.EditText.Dark.NoUnderline"
android:layout_width="0dp"
android:layout_height="@dimen/view_size"
android:layout_weight="1"
android:paddingEnd="0dp"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingStart="0dp"/>
</LinearLayout>
编辑3:
忘记提及:在EditText
获得焦点并开始输入后,它会正常调整。