【问题标题】:Android EditText pinned to bottom of RelativeLayout dissapears on WVGA固定到RelativeLayout底部的Android EditText在WVGA上消失
【发布时间】:2012-02-06 10:47:12
【问题描述】:

我有一个 EditText 和一个固定在 RelativeLayout 底部的按钮。

当您单击 EditText 时,软键盘打开,但 EditText 和 Button 消失了,但方式非常奇怪。它们实际上就在那里,因为你可以打字,你也可以按下 Button 应该在键盘上方的位置,它会响应触摸,但是......你实际上看不到它们。

不知道为什么,但这似乎是特定于屏幕分辨率的?它在我的 NexusOne 上坏了,但在我的 LS670 上工作。在带有 WVGA800 的模拟器上坏了,但在 HVGA 上可以工作。

我有一个更复杂的 layout.xml,但我设法将其归结为这个简单的案例:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/test_view"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">


        <EditText
            android:id="@+id/test_text"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentBottom="true"
            android:layout_toLeftOf="@+id/test_textButton"
            />

        <Button
            android:id="@id/test_textButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:text="OK"/>

</RelativeLayout>

编辑:

因此,我对此进行的研究越多,它似乎是布局引擎中的一个错误。当我单击 EditText 时,我实际上可以看到 EditText 在键盘覆盖它之前向上动画。它只是不够高。它似乎与宽屏幕分辨率有关。如果我最终在编辑文本上放置 100dip 的边距,我几乎看不到它在键盘上方突出,而 200dip 使它大部分显示出来。再次,这适用于 HVGA 屏幕。隐藏在键盘下方的按钮仍然响应我在键盘上方的触摸,这很奇怪。

【问题讨论】:

  • 没有足够的分数来自我回答,但我发现了问题:问题是活动的默认softInputMode似乎有一个错误(可能与widesreen有关)。如果您将其切换为“adjustResize”,它的工作原理与预期完全一样!

标签: android android-edittext android-relativelayout android-softkeyboard widescreen


【解决方案1】:

尝试将您的 ScrollView 设置为 0dp 而不是 fill_parentfill_parent 导致它填充整个父级的高度,从而重叠 test_footer

【讨论】:

  • 我重新编辑了我的问题,因为我设法将其归结为一个更简单的测试用例。如您所见,那里没有很多。从 Layout 的角度来看,没有什么是隐藏的,因为 TextView 和 Button 实际上就在那里。你只是看不到他们。他们对应该查看的触摸事件做出响应。
  • 好的......同样的事情也适用。您有一个 EditText,其宽度设置为 fill_parent。因此,EditText 的宽度不出所料地填充了父级的宽度。尝试将 EditText 的 layout_width 属性中的 fill_parent 替换为 0dp。
  • 我尝试了您的更改,但没有任何区别。在单击 EditText 之前,Button 和 EditText 的布局看起来都很好。一旦我单击 EditText,软键盘就会弹出,EditText 和 Button 都“消失”,但实际上是存在的,因为它们对触摸有反应。同样,这也只会影响 WVGA 屏幕,不会影响 HVGA。确实看起来像是布局渲染中的某种错误,而不是我的布局代码中的错误。我希望有人可能遇到过这种情况并有解决方法。
猜你喜欢
  • 2017-05-25
  • 1970-01-01
  • 2016-03-21
  • 2021-03-03
  • 1970-01-01
  • 1970-01-01
  • 2021-01-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多