Tik*_*boy 5 android on-screen-keyboard
我想知道是否有任何方式可以在屏幕键盘显示或消失时由android自动通知。
例如,当我们单击一个编辑文本时,将显示ime。会有活动电话吗?当我们按回去时它消失时,同样会有呼叫吗?
我发现这个线程是Android:屏幕键盘出现时触发哪个事件?,但尚未找到答案。
目的是因为我需要一个事件来自动操纵可见性。我有一个活动,在屏幕顶部,下面有一个edittext,一个listview和一个linearlayout彼此重叠。为了控制用户看到的内容,我操纵可见性。默认情况下,最初显示线性布局,但是,当用户输入文本时,应改为显示列表视图。用户完成键入后,列表视图应消失,在这种情况下,屏幕键盘将关闭。
我尝试使用onFocusChange来完成可见性的更改,但是,即使屏幕键盘消失了,edittext仍然会保持焦点,并且线性布局不会再出现。
下面是我对onFocusChange的实现
@Override
public void onFocusChange(View v, boolean hasFocus)
{
if(v.getId()==R.id.search_screen_keyword_textbox)
{
if(hasFocus)
{
filterSection.setVisibility(View.GONE);
autoComSection.setVisibility(View.VISIBLE);
}
else
{
filterSection.setVisibility(View.VISIBLE);
autoComSection.setVisibility(View.GONE);
}
}
else if(v.getId()==R.id.search_screen_location_textbox)
{
if(hasFocus)
{
filterSection.setVisibility(View.GONE);
autoComSection.setVisibility(View.VISIBLE);
}
else
{
filterSection.setVisibility(View.VISIBLE);
autoComSection.setVisibility(View.GONE);
}
}
else
{
filterSection.setVisibility(View.VISIBLE);
autoComSection.setVisibility(View.GONE);
}
}
Run Code Online (Sandbox Code Playgroud)
如果有人对此有任何想法,请告诉我。:D
您可以在编辑文本中捕获后退按钮,这将使键盘消失。使用此方法:
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
// Do your thing here
return false;
}
return super.dispatchKeyEvent(event);
}
Run Code Online (Sandbox Code Playgroud)
搜索很棒:onKeyPreIme或Android API
| 归档时间: |
|
| 查看次数: |
6351 次 |
| 最近记录: |