【问题标题】:EditText over ListView when KeyBoard appears出现键盘时 ListView 上的 EditText
【发布时间】:2025-11-27 18:20:06
【问题描述】:

所以,我正在开发一个在 ListView 下方有一个 Listview、一个 EditText 和一个 Button 的应用程序。喜欢这个打印屏幕:

问题是:当我点击 EditText 时,EditText 上升并保持在我的 Listview 前面,就像这个打印屏幕:

在我的 Mainfest 中,我已经添加了 windowSoftInputMode="AdjustResize" 和 windowSoftInputMode="adjustPan" 以及任何作品。

这是我的 XML:

<RelativeLayout     xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="400dp"
android:layout_height="match_parent"
tools:context=".MainActivity">

<EditText
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:inputType="textPassword"
    android:ems="10"
    android:id="@+id/editText"
    android:hint="Senha"
    android:textColor="#000000"
    android:layout_marginBottom="22dp"
    android:layout_above="@+id/button"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true" />
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Conectar"
    android:id="@+id/button"
    android:textColor="#000000"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="39dp" />

    <ListView
        android:layout_width="330dp"
        android:layout_height="260dp"
        android:id="@+id/listView"
        android:background="@drawable/border"
        android:stackFromBottom="true"
        android:transcriptMode="normal"
        android:layout_marginLeft="63dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
              </RelativeLayout>

谁能帮我解决这个问题?感谢您的帮助!

【问题讨论】:

  • 为什么不使用 LinearLayout?
  • 你在 ListView 和 Button 中都写了 android:layout_alignParentBottom="true"
  • 嘿@Bruno Santons 尝试将此行添加到EditTextandroid:layout_below ="@+id/listView"
  • 这只是一个测试布局,所以我使用标准布局类型。我删除了标签但没有用:(@ChiragSavsani
  • @Josef 非常感谢您的提示,也很有效! :)

标签: java android xml listview android-softkeyboard


【解决方案1】:

试试这个。并根据您的需要添加边距。
我在我的手机上测试了这个。

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1" >

        <ListView
            android:id="@+id/listView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/border" >
        </ListView>
    </LinearLayout>

    <EditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="22dp"
        android:ems="10"
        android:hint="Senha"
        android:inputType="textPassword"
        android:textColor="#000000" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="39dp"
        android:text="Conectar"
        android:textColor="#000000" />

</LinearLayout>

【讨论】:

    【解决方案2】:

    在这个sn-p下面添加RequestFocus

     <ListView
            android:layout_width="330dp"
            android:layout_height="260dp"
            android:id="@+id/listView"
            android:background="@drawable/border"
            android:stackFromBottom="true"
            android:transcriptMode="normal"
            android:layout_marginLeft="63dp"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />
        <RequestFocus/> 
    </Relativelayout>
    

    【讨论】: