Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 添加自定义后堆栈_Android_Android Ui - Fatal编程技术网

Android 添加自定义后堆栈

Android 添加自定义后堆栈,android,android-ui,Android,Android Ui,mSearchWrapper是一个包含EditTextView的视图。mSearchWrapper将可见并消失 当它变为可见时,我将显示键盘并向EditTextView请求焦点: private void showInput() { InputMethodManager imm = (InputMethodManager) getSystemService( Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(InputMetho

mSearchWrapper是一个包含EditTextView的视图。mSearchWrapper将可见并消失

当它变为可见时,我将显示键盘并向EditTextView请求焦点:

private void showInput() {
    InputMethodManager imm = (InputMethodManager) getSystemService( Context.INPUT_METHOD_SERVICE);
    imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
}
此时,用户可以按下后退按钮并关闭键盘。我想在这里创建一个后堆栈,其中:按下后,不仅会隐藏键盘,还会隐藏mSearchWrapper.setVisibilityView.Goe

如何使已隐藏的键盘backback和setVisibilityView.com在一个back pressed事件中消失

备选方案:如何在特定的现有backback中添加一些代码

我是否应该将该活动中的整个背景重写为?

我得到了帮助

我在活动中扩展了EditText类,比如:私有类HidableEditText扩展了EditText,并以编程方式从XML中移动了所有属性,以编程方式添加视图

然后我覆盖了onKeyPreIme:


super为我隐藏键盘和堆叠,因此我只需调整可见性。

如果覆盖onBackPressed会怎么样?@shkschneider在第一个背面,它只关闭键盘。在第二个back上,它将可见性设置为Gone,并在关闭应用程序几秒钟后将其设置为Gone,因为堆栈中没有其他内容。因此,您可以在堆栈中实现所需内容并返回true。这回答了您的问题添加自定义后堆栈:只需覆盖onBackPressed。剩下的是另一回事
    @Override
    public boolean onKeyPreIme(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            mSearchWrapper.setVisibility(View.GONE);
        }
        return super.onKeyPreIme(keyCode,event);
    }