1、对软键盘的操作:InputMethodManager
/**
* 切换键盘状态
*
* @param v
*/
public void switchInput(View v) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
}
/**
* 打开键盘
*
* @param v
*/
public void openInput(View v) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(findViewById(R.id.editText1), InputMethodManager.SHOW_IMPLICIT);
}
/**
* 关闭键盘
*
* @param v
*/
public void closeInput(View v) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0); // 强制隐藏键盘
}
2、键盘弹出的布局变化(顶上去):
(1)使用scrollview布局
(2)、edittext的点击事件
// 将ScrollView滚动到底
mScrollView.fullScroll(View.FOCUS_DOWN);
(3)、xml的配置
<!-- 只有用户点击了编辑框才显示软键盘,并且会导致原有界面重新布局 -->
<activity
android:name="com.test.ruanjianpan.Myruanjianpan2Activity"
android:label="@string/title_activity_myruanjianpan2"
android:windowSoftInputMode="stateHidden|adjustResize" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
不能实现效果的原因:设定了固定的高度,导致被遮挡: