我正在设计一个简单的登录活动。我使用了以下xml布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="vertical"
        android:layout_gravity="center_vertical|center_horizontal"
        android:gravity="center_vertical|center_horizontal"
        android:layout_margin="15dp">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="My application title"
            android:textSize="30sp"/>
    </LinearLayout>

     <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2"
        android:orientation="vertical"
        android:layout_gravity="center_vertical|center_horizontal"
        android:gravity="center_vertical"
        android:layout_margin="15dp">
          <EditText
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:hint="Username"/>
          <EditText
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:hint="Password"
              android:layout_marginTop="15dp"/>
          <Button
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:layout_marginTop="15dp"
              android:text="Login"/>
     </LinearLayout>

</LinearLayout>


而且我得到了这个结果:



但是,如果焦点在第一个EditText上,我将获得以下信息:



如果焦点在第二个EdiText上,则结果如下:



考虑到我在清单中使用了以下代码进行活动:

android:windowSoftInputMode="adjustPan|adjustResize"


我希望当虚拟键盘出现时,两个edittext,按钮和textview可见并且正确位于可用屏幕的中心。
我必须在代码中进行哪些更改?

注意:如果删除清单中的行,则结果相同:

android:windowSoftInputMode="adjustPan|adjustResize"

最佳答案

您可以将父级LinearLayout替换为ScrollView:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

  <LinearLayout ...>

  ....
  ....

  </LinearLayout>


</ScrollView>


试试这个,它对我的​​一些apk有用!

编辑:对不起,我没有自动将文本居中,因此您可以通过滑动手指手动将editext调整为居中。

07-27 15:35