Мне было интересно, есть ли способ получать автоматические уведомления от Android, когда отображается экранная клавиатура и когда она исчезает.
Например, когда мы нажимаем на текст редактирования, появляется ime. Будут ли звонки на мероприятия? И когда он исчезнет, когда мы нажмем назад, будут ли какие-то ровные вызовы?
Я нашел эту ветку Android: какое событие срабатывает при появлении экранной клавиатуры? , однако ответов пока нет.
Цель в том, что мне нужно событие для автоматического управления видимостью. У меня есть действие с текстом редактирования в верхней части экрана, под ним, списком и линейным расположением, которые расположены друг над другом. Чтобы контролировать то, что видит пользователь, я управляю видимостью. По умолчанию линейный макет отображается изначально, однако, когда пользователь вводит текст, вместо него должен отображаться список. Список должен исчезнуть, когда пользователь закончит ввод, что в этом случае экранная клавиатура будет закрыта.
Я попытался выполнить изменение видимости с помощью onFocusChange, однако, даже когда экранная клавиатура исчезает, edittext по-прежнему сохраняет фокус, и linearlayout больше никогда не появляется.
Ниже представлена моя реализация 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);
}
}
. Если у кого-то есть какие-либо представления об этом, дайте мне знать. : D