首先说下我的需求:布局最上面是一个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行不通,点第一次弹出软键盘,点第二次才出现光标)

05-11 15:25