問題描述
我的問題:從屏幕上第二次顯示軟鍵盤開始,它完全隱藏了我的 EditText.
My problem: starting from the second time the software keyboard is shown on the screen, it entirely hides my EditText.
屬性android: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.
請幫忙!謝謝:-)
我也嘗試將第一個 LinearLayout 放在 ScrollView 中,但它不起作用!
edit: I've also tried to put the first LinearLayout inside a ScrollView but it doesn't work!
推薦答案
繼承 EditText 并重寫 onKeyPreIme(int keyCode, KeyEvent event) 方法,如下所示:
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);
}
現在當按下返回鍵時,EditText 失去了焦點.然后再次點擊它,調整盤將起作用.
Now when the back key is pressed, the EditText lost the focus. Then tapping it again adjustpan will work.
這篇關于Android 調節器第一次后無法正常工作的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!