首先说下我的需求:布局最上面是一个bar,有左上角返回按钮和标题,bar下面是一个ScrollView,里面有各种TextView和EditText,
点击下面的EditText时,不希望软键盘把bar给顶上去(看不见)。
下面几点需要注意:
1.在AndroidManifest中相应的activity配置android:windowSoftInputMode="adjustResize|stateHidden",可以解决
2.但是出现了一个问题,在软键盘弹出的时,总会闪现黑色的背景。
3.后来发现是跟theme有关,去掉对应的activity中android:theme="@android:style/Theme.NoTitleBar"的属性,在
activity的oncreate的setContentView前添加requestWindowFeature(Window.FEATURE_NO_TITLE);问题完美解决。
其他:
1.设置android:windowSoftInputMode="adjustPan|stateHidden"却不会出现闪现黑色的背景,但是还是会把bar顶上去。
2.EditText去掉边框和下划线:给EditText添加android:background="@null"属性
3.进入页面,不希望所有的EditText有光标:edit.setCursorVisible(false);点击时,弹出软键盘并出现光标:
edit.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
edit.setCursorVisible(true);
return false;
}
}); (注:setOnClickListener行不通,点第一次弹出软键盘,点第二次才出现光标)