【问题标题】:Android: EditText stays hidden behind the keyboardAndroid:EditText 隐藏在键盘后面
【发布时间】:2011-09-22 08:05:43
【问题描述】:

在写这个问题之前,我已经阅读了以下答案/文章:

  1. Android soft keyboard covers edittext field
  2. Android keyboard obscures EditText
  3. http://developer.android.com/resources/articles/on-screen-inputs.html
  4. Soft Keyboard Overlapping with EditText Field

Android 软键盘默认设置为平移,这意味着它将保留键盘上方的所有可编辑区域。然而,它并没有平移足够。当我运行它并按下靠近屏幕底部的edittext时,键盘会出现并且edittext向上移动但不足以看到正在输入的内容。我已经使用/尝试了以下内容:

  1. android:windowSoftInputMode="adjustPan" 在 Activity 的清单中。这没什么区别。我也尝试过设置adjustUnspecified 和adjustResize 的值。它们都不起作用。

  2. <uses-sdk android:minSdkVersion="3" /> 在清单文件中。我的应用程序针对 sdk 2.1 及更高版本。不过,我试过了,还是不行。

  3. 使用 ScrollView。也不行。

有没有办法手动管理键盘在按下特定编辑文本时执行多少“平移”。

下面是我的xml文件。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" 
android:layout_height="fill_parent"
android:background="#ffffff">       

    <ImageView 
    android:id="@+id/header"
    android:layout_width="320dip"
    android:layout_height="86dip"
    android:background="@drawable/header_bg">
    </ImageView>

    <ImageView 
    android:layout_width="320dip"
    android:layout_height="200dip"
    android:layout_alignParentBottom="true"
    android:background="@drawable/bg1_btm">
    </ImageView>

        <TextView android:text="Hostname" 
        android:id="@+id/lbl_hostname"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_below="@id/header"/>

        <TextView android:text="(Current)" 
        android:id="@+id/lbl_hostname_current"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/lbl_hostname"
        android:layout_below="@id/header" />

        <EditText android:text="EditText" 
        android:id="@+id/editText_hostname" 
        android:layout_below="@id/lbl_hostname"  
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:maxLength="25">
        </EditText>

        <TextView android:text="Registration URL" 
        android:id="@+id/lbl_registration"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:layout_below="@id/editText_hostname" />

        <TextView android:text="(Current)" 
        android:id="@+id/lbl_registration_current"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:layout_below="@id/editText_hostname"
        android:layout_toRightOf="@id/lbl_registration" />

        <TextView android:text="http://" 
        android:id="@+id/lbl_url_prefiz"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:layout_below="@id/lbl_registration"
        android:paddingTop="10dip" />

        <EditText android:text="EditText" 
        android:id="@+id/editText_registration" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:layout_toRightOf ="@id/lbl_url_prefiz"
        android:layout_below="@id/lbl_registration">
        </EditText>

        <TextView android:text="Chat" 
        android:id="@+id/lbl_chat"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_below="@id/editText_registration"/>

        <TextView android:text="(Current)" 
        android:id="@+id/lbl_chat_current"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_below="@id/editText_registration"
        android:layout_toRightOf="@id/lbl_chat"/>

        <EditText android:text="EditText" 
        android:id="@+id/editText_chat" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_below="@id/lbl_chat">
        </EditText>

        <TextView android:text="SSID" 
        android:id="@+id/lbl_ssid"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:layout_below="@id/editText_chat" />

        <TextView android:text="(Current)" 
        android:id="@+id/lbl_ssid_current"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:layout_below="@id/editText_chat"
        android:layout_toRightOf="@id/lbl_ssid"
        />

        <EditText android:text="EditText" 
        android:id="@+id/editText_ssid" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_below="@id/lbl_ssid"
        android:maxLines="1"
        android:inputType="text"
        android:layout_marginBottom="25dip">
        </EditText> 

        <Button android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:id="@+id/ButtonSave" 
        android:text="Save" 
        android:layout_below="@id/editText_ssid"
        android:layout_alignParentLeft="true">
        </Button>

        <Button android:text="Continue" 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:id="@+id/ButtonContinue" 
        android:layout_below="@id/editText_ssid" 
        android:layout_alignParentRight="true">
        </Button>

</RelativeLayout>

【问题讨论】:

  • 答案在这篇文章中:stackoverflow.com/questions/4559367/…
  • 谢谢。我现在已经完成了一项工作。但稍后会检查。
  • 我不知道。我所做的只是将我的应用中的按钮向上移动了一点。

标签: android keyboard hide android-edittext hidden


【解决方案1】:

试试

android:windowSoftInputMode="adjustResize"  

对我来说很好:)

【讨论】:

    【解决方案2】:

    尝试使用 fill_parent 或 match_parent 设置所有控件的布局高度和宽度...而不是使用硬编码值...

    如果您正在使用它,也请删除它,因为它可能会将您的应用向下推...

    getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
    

    希望它有效...

    【讨论】:

    • 谢谢。不再有项目尝试这个。但是,如果它适用于其他任何人,我会接受它作为答案。感谢您的帮助。
    • 使其可见但禁用滚动视图和上视图有一些问题......
    猜你喜欢
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 2020-10-15
    • 2020-09-13
    • 2019-08-20
    • 1970-01-01
    相关资源
    最近更新 更多