Клавиатура Android событие? - PullRequest
0 голосов
/ 04 августа 2011

В одном из моих классов у меня есть два EditText и Button в нижней части экрана. Когда я выбираю один из EditText s, появляется клавиатура. Проблема в том, что тогда EditText и Button перемещаются в переднюю часть экрана, чтобы увидеть, что вы пишете. Но выше EditText у меня есть два TextView, и когда я что-то записываю в EditText, TextView s исчезает с экрана.

Могу ли я сделать что-то вроде этого: когда пользователь пишет что-то в Edittext, только EditText движется вверх, а на остальные это не влияет?

Ответы [ 3 ]

0 голосов
/ 04 августа 2011

Добавьте атрибут android:windowSoftInputMode к Activity в AndroidManifest:

<activity android:name=".MyActivity"
          android:label="@string/app_name"
          android:windowSoftInputMode="adjustPan">
</activity>

. Это приведет к правильной настройке экрана при открытии программной клавиатуры.

0 голосов
/ 07 марта 2013

Вы можете перезаписать метод onConfigurationChanged и проверить состояние клавиатуры вверх / вниз

@Override
public void onConfigurationChanged(Configuration config) 
{
    super.onConfigurationChanged(config);


    if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO)
    {

    } 
    else if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES) 
    {

    }
}

<activity android:name=".MyActivity"
          android:configChanges="orientation|keyboardHidden"
          android:label="@string/app_name">
0 голосов
/ 04 августа 2011

Этот код анимирует ваш текст сверху вниз:

СДЕЛАТЬ ИЗМЕНЕНИЯ СОГЛАСНО:

edtxt.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus)
{   
TranslateAnimation slide = new TranslateAnimation(0, 0, -100,0 );   
    slide.setDuration(1000);   
    slide.setFillAfter(true);
    edtxt.startAnimation(slide);  
}

}
    });
...