我的问题:从软件键盘被显示在屏幕上的第二次起,它完全隐藏我的EditText。
My problem: starting from the second time the software keyboard is shown on the screen, it entirely hides my EditText.
属性机器人:windowSoftInputMode =adjustPan已在AndroidManifest.xml中指定,但它仅在第一次
Attribute android:windowSoftInputMode="adjustPan" has been specified in the AndroidManifest.xml, but it works only the first time.
我有以下布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="464dp"
android:gravity="top"
android:orientation="vertical"
android:paddingLeft="16dp"
android:paddingRight="16dp" >
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="10"
android:background="#E3E3E2"
android:gravity="top" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<EditText
android:id="@+id/addListText"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_weight="10"
android:contentDescription="@string/addItemContentDescription"
android:gravity="bottom|center_horizontal"
android:inputType="textLongMessage"
android:textColor="#E3E3E2"
android:visibility="gone" />
<ImageButton
android:id="@+id/addTextListButton"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_weight="1"
android:layout_gravity="right"
android:background="@android:color/transparent"
android:contentDescription="@string/addItemButton"
android:scaleType="fitCenter"
android:src="@drawable/plus_add"
android:visibility="gone" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:gravity="bottom|center_horizontal"
android:orientation="horizontal"
android:paddingLeft="16dp"
android:paddingRight="16dp" >
<ImageButton
android:id="@+id/syncListsButton"
android:layout_width="64dp"
android:layout_height="match_parent"
android:src="@android:drawable/ic_popup_sync" />
<ImageButton
android:id="@+id/showOrHide"
android:layout_width="64dp"
android:layout_height="match_parent" />
<ImageButton
android:id="@+id/delListButton"
android:layout_width="64dp"
android:layout_height="match_parent"
android:src="@android:drawable/ic_menu_delete" />
</LinearLayout>
</LinearLayout>
在showOrHide按钮显示/隐藏addListText/addTextListButton组合。
The "showOrHide" button shows/hides the "addListText"/"addTextListButton" combo.
在EditText上显示的第一次,我抚摸它,软键盘显示的屏幕和addListText/addTextListButton组合是否正确摇上。当我隐藏了键盘,然后再次显示,键盘完全覆盖我的addListText编辑框!
When the EditText is shown for the first time and I touch it, the soft keyboard appears on the screen and the "addListText"/"addTextListButton" combo is panned correctly. When I hide the keyboard and then show it again, the keyboard covers completely my addListText editbox!
这是怎么回事任何想法?我在Android 4.2.2测试。
Any idea on what's going on? I'm testing it on Android 4.2.2.
请帮忙!感谢: - )
Please help! Thanks :-)
编辑:我也试图把第一的LinearLayout内的滚动型,但它不能正常工作
edit: I've also tried to put the first LinearLayout inside a ScrollView but it doesn't work!
子类的EditText和覆盖的方法onKey $ P $宗座外方传教会(INT键code,KeyEvent的事件)是这样的:
subclassed EditText and overridden the method onKeyPreIme(int keyCode, KeyEvent event) like this:
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event)
{
if(keyCode == KeyEvent.KEYCODE_BACK)
{
clearFocus();
}
return super.onKeyPreIme(keyCode, event);
}
现在,当返回键是pressed的的EditText失去焦点。然后再点击它adjustpan会工作。
Now when the back key is pressed, the EditText lost the focus. Then tapping it again adjustpan will work.