2

我的应用程序显示了一个自定义的 AlertDialog,其中包含 4 个登录屏幕点。

它在 Galaxy S3(Android 4.1.2)上工作正常,但在 Galaxy Xcover(Android 2.3.6 和 3,65 英寸屏幕)上,只要显示软键盘,对话框就会变形:

在此处输入图像描述

当我再次隐藏软键盘时,对话框正确显示

不确定它是否取决于 Android 版本或屏幕尺寸。

关于如何解决这个问题的任何想法?自定义 AlertDialog 有什么特别之处吗?

<LinearLayout 
              android:id="@+id/llPin"
              android:orientation="horizontal"
              android:gravity="center_horizontal|center_vertical"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"

              android:paddingBottom="10dp">

            <EditText
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/editTextPin1"
                    android:layout_gravity="center"
                    android:gravity="center"
                    android:background="@drawable/rounded_corners"
                    android:inputType="number"
                    android:password="true"
                    android:maxLength="1"
                    android:padding="5dp"
                    android:layout_margin="5dp"
                    android:nextFocusDown="@+id/editTextPin2"
                    android:nextFocusForward="@+id/editTextPin2"
                    android:nextFocusLeft="@+id/editTextPin2"
                    android:nextFocusRight="@+id/editTextPin2"
                    android:nextFocusUp="@+id/editTextPin2"
                    android:minWidth="30dp"/>

            <EditText
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/editTextPin2"
                    android:layout_gravity="center"
                    android:gravity="center"
                    android:background="@drawable/rounded_corners"
                    android:inputType="number"
                    android:password="true"
                    android:maxLength="1"
                    android:padding="5dp"
                    android:layout_margin="5dp"
                    android:nextFocusDown="@+id/editTextPin3"
                    android:nextFocusForward="@+id/editTextPin3"
                    android:nextFocusLeft="@+id/editTextPin3"
                    android:nextFocusRight="@+id/editTextPin3"
                    android:nextFocusUp="@+id/editTextPin3"
                    android:minWidth="30dp"/>

            <EditText
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/editTextPin3"
                    android:layout_gravity="center"
                    android:gravity="center"
                    android:background="@drawable/rounded_corners"
                    android:inputType="number"
                    android:password="true"
                    android:maxLength="1"
                    android:padding="5dp"
                    android:layout_margin="5dp"
                    android:nextFocusDown="@+id/editTextPin4"
                    android:nextFocusForward="@+id/editTextPin4"
                    android:nextFocusLeft="@+id/editTextPin4"
                    android:nextFocusRight="@+id/editTextPin4"
                    android:nextFocusUp="@+id/editTextPin4"
                    android:minWidth="30dp"/>

            <EditText
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/editTextPin4"
                    android:layout_gravity="center"
                    android:gravity="center"
                    android:background="@drawable/rounded_corners"
                    android:inputType="number"
                    android:password="true"
                    android:maxLength="1"
                    android:padding="5dp"
                    android:layout_margin="5dp"
                    android:nextFocusDown="@+id/editTextPin1"
                    android:nextFocusForward="@+id/editTextPin1"
                    android:nextFocusLeft="@+id/editTextPin1"
                    android:nextFocusRight="@+id/editTextPin1"
                    android:nextFocusUp="@+id/editTextPin1"
                    android:minWidth="30dp"/>
</LinearLayout>

谢谢

4

1 回答 1

0

试试这个:

dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
于 2013-03-20T03:29:27.270 回答