您的位置:首页 > 其它

判断软键盘显示与隐藏

2018-01-16 13:53 232 查看
效果图:



代码:

public class MainActivity extends AppCompatActivity implements ViewTreeObserver.OnGlobalLayoutListener {

private ImageView logoImg;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
logoImg = findViewById(R.id.logo_img);
}

@Override
protected void onResume() {
super.onResume();
getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(this);
}

@Override
protected void onPause() {
super.onPause();
getWindow().getDecorView().getViewTreeObserver().removeGlobalOnLayoutListener(this);
}

@Override
public void onGlobalLayout() {
int screenHeight = logoImg.getRootView().getHeight();//获取根布局高
Rect keyRect = new Rect();
logoImg.getWindowVisibleDisplayFrame(keyRect);//获取当前窗口可视区域大小
int keyShowHeight = screenHeight - keyRect.bottom;
if (keyShowHeight > 0) {
Toast.makeText(this, "键盘显示", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "键盘隐藏", Toast.LENGTH_SHORT).show();
}
}
}


布局文件就一个图片和一个EditText,这里就不贴出了,关键是代码

int screenHeight = logoImg.getRootView().getHeight();//获取根布局高
Rect keyRect = new Rect();
logoImg.getWindowVisibleDisplayFrame(keyRect);//获取当前窗口可视区域大小
int keyShowHeight = screenHeight - keyRect.bottom;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: