2011-08-04 160 views
0

在我的一个课程中,我在屏幕底部有两个EditText和一个Button。当我选择其中一个EditText时,出现键盘。问题是,然后EditTextButton被移动到屏幕的前面,以便看到你正在写什么。但是,在EditText之上,我有两个TextView,当我给EditText写信时,TextView从屏幕上消失。键盘android事件?

我可以这样做:当用户在Edittext中写入内容时,只有EditText上移,其余不受影响?

+0

可以使用setOnFocusChangeListener与此布局参数... – Hanry

+0

你能不能给我一个例子吗? – Gabrielle

+0

你想在编辑过程中将editText带到屏幕的中心? – Hanry

回答

0

此代码动画您edtxt从上到下:

DO相应改变:

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); 
} 

} 
    }); 
0

添加android:windowSoftInputMode属性您ActivityAndroidManifest

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

这将导致当软件键盘打开时,屏幕可以正确调整。

0

可以overrite 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">