android 键盘

1.控制进入界面时键盘的状态和界面布局(官方文档)

<activity android:windowSoftInputMode="stateVisible|adjustResize" . . . >

Values set here (other than "stateUnspecified" and"adjustUnspecified") override values set in the theme. 

stateUnspecified 系统自己选择
stateUnchanged 保持和上一个界面的键盘可见状态一样
stateHidden 进入界面时,键盘隐藏
stateAlwaysHidden 键盘总是隐藏
stateVisible 进入界面时,键盘显示
stateAlwaysVisible 键盘显示
adjustUnspecified 布局有系统选择,有滑动控件时,adjustResize,反之选择adjustPan
adjustResize 布局自动调整,给键盘留出空间
adjustPan 布局自会平移,不遮挡获得焦点的控件

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
		// 显示键盘
		imm.showSoftInput(account, 0);
		// 隐藏键盘
		imm.hideSoftInputFromWindow(account.getWindowToken(), 0);
		// 键盘显示时,隐藏;键盘隐藏时,显示
		imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,
				InputMethodManager.HIDE_NOT_ALWAYS);
		// 键盘是否打开
		imm.isActive();



2.

效果:键盘弹出时,不遮挡登陆按钮,可以滑动

把输入框和登陆按钮用scrollView包住,在AndroidManifest.xml中设置该Activity

<activity android:windowSoftInputMode="stateVisible|adjustResize">

效果:键盘弹出时,自动滑动显示出登陆按钮
在上面的基础上,改写scrollView的onLayout方法
package hq.org.osaalert.view;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.ScrollView;

public class MyScrollView extends ScrollView {

	public MyScrollView(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

	@Override
	protected void onLayout(boolean changed, int l, int t, int r, int b) {
		// TODO Auto-generated method stub
		super.onLayout(changed, l, t, r, b);
		this.fullScroll(ScrollView.FOCUS_DOWN);
	}

}


 
  


3.键盘系统原理







你可能感兴趣的:(android 键盘)