[英]onRestart instead of onCreate when press back button and orientation change
[英]Change System Back Button Orientation
那实际上是不好的。 按下键盘时,Android上后退按钮的正常行为是隐藏键盘。 如果我在按下键盘的同时按下后退按钮将其隐藏起来而丢失了正在做的事情,那我会非常生气,并认为您的应用有问题。 实际上,我的假设不是“它们覆盖了后退按钮”,而是“糟糕的应用程序崩溃了”。
无法以编程方式更改该按钮的方向。 向下箭头表示点击将隐藏键盘。 如果由于您的应用违反了常规规则而没有隐藏键盘,则向下箭头是正确的-再次按下后退按钮将关闭键盘。
实际上,您可以覆盖Android中的“后退”按钮。 这可以通过重写onKeyDown函数来实现,如下所示:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// Hide keyboard and activate previous activity
return false;
}
return super.onKeyDown(keyCode, event);
}
(尽管我承认,但我从未测试过此功能是否可以在键盘打开的情况下使用它。)
天哪,如果这不起作用,您甚至可以做些“变态”的事情,像这样:
boolean opened = true;
public void setListenerToRootView(){
final View activityRootView = getWindow().getDecorView().findViewById(android.R.id.content);
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int heightDiff = activityRootView.getRootView().getHeight() - activityRootView.getHeight();
if (heightDiff > 100 )
opened = true;
else if(opened == true)
opened = false;
}
});
}
如果这种方法具有浮动键盘或某些特定功能,则显然可能会导致错误,但是您可以根据需要进行处理。
注意:所有这些都不能解决箭头指向下方的事实。 我认为您无法真正修改它,尽管您至少可以通过在每次卸下键盘时导航至上一个活动来修改其行为。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.