我在Fragment
内创建Activity
。EditText
布局中有MainActivity
,Fragment
布局属于EditText
我的问题是当我点击软键盘未显示的EditText
时。
在EditText
布局中,我创建了
<EditText
android:id="@+id/edt_searchContact"
android:layout_width="match_parent"
android:layout_height="50dp"
android:textCursorDrawable="@drawable/color_cursor"
android:background="@drawable/edit_text_line_contacts"
android:focusable="true"
android:clickable="true"
android:hint="Search..."/>
<requestFocus/>
用于向软键盘显示我在Fragment
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(edt_searchContact, InputMethodManager.SHOW_IMPLICIT);
在清单中
android:windowSoftInputMode="adjustPan"
我在一个Fragment
中有3个Activity
,当Fragment
出现EditText
时,Activity
布局中的{{1}}可见。
任何人都可以帮助我 在此先感谢:)
答案 0 :(得分:0)
在您的活动中尝试此操作
editText = (EditText)findViewById(R.id.txt_yourName);
// Request focus and show soft keyboard automatically
editText.requestFocus();
getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE);
答案 1 :(得分:0)
试试这个:
editText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
editText.post(new Runnable() {
@Override
public void run() {
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(edt_searchContact, InputMethodManager.SHOW_IMPLICIT);
}
});
}
});
editText.requestFocus();
答案 2 :(得分:0)
在你的Activity的onResume()方法中你可以这样写:
EditText et = (EditText) findViewById(R.id.et);
et.requestFocus();
InputMethodManager mngr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
mngr.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT);
答案 3 :(得分:0)
以下方法对我有用-
InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);