后的第一时间的Andr​​oid adjustpan不工作第一时间、工作、oid、Andr

2023-09-04 04:43:12 作者:今年的我们十七岁

我的问题:从软件键盘被显示在屏幕上的第二次起,它完全隐藏我的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.