【问题标题】:Android soft keyboard hides buttonAndroid软键盘隐藏按钮
【发布时间】:2014-02-20 11:50:00
【问题描述】:

我确实有一个简单的登录视图,如下所示。

如果任何EditText 获得焦点,键盘将显示(软)。红色虚线应概述此行为:

我需要的是,底部的按钮(注册和帮助)在键盘显示时不可见。登录按钮的底端应该在键盘上方,以便EditTexts Login Button 都可见。

如果可能的话,最好有一半的徽标应该是可见的(取决于屏幕尺寸)

如果可能的话,定义一个额外的布局 xml 就像“键盘可见”是非常好的。

【问题讨论】:

  • 你检查了清单中的adjustPan或adjustResize
  • 是的,我做到了,但是登录按钮被切断了一点
  • 我和你在同一条船上,这几天一直困扰着我。你找到解决办法了吗?

标签: android keyboard scrollview


【解决方案1】:

1) ScrollView 作为父布局,以便用户可以滚动。

2) 仅使用adjustResize

3) 使用 software keyboard show/hide event 拥有更多控制权。您可以在键盘可见时使用 View.GONE 设置登录按钮下方布局的可见性。

额外的:

检查Specifying the Input Method Type。为方便用户使用 Next 和 Done 操作

【讨论】:

  • 我不明白使用自定义键盘布局的意义。为什么我需要这个?如果显示键盘,我只想设置一些不可见的视图并稍微更改滚动视图的内容偏移量。难道没有别的办法了吗?不敢相信有那么难。在 iOS 中,实现这种行为就像 5 行代码......
  • @Alexander 所以首先添加 adjustResize 属性。然后在代码键盘内部出现 OnTouch(设置所有 editText 侦听相同的 OnTouch)并在 OnTouch 内部设置您不想显示的某些视图的可见性。按下后退按钮(我们假设将隐藏键盘)将可见性设置为可见以再次显示视图。 (注意:自行测试是否正确处理所有键盘消失。)
  • @Alexander check 。我认为您可以使用这些解决方案
【解决方案2】:

做类似dis的事情。这里“android:name”是你的活动。

<activity
            android:name="com.example.tryitonjewelry.EnterStoreRegisterNew"
            android:label="@string/title_activity_enter_store_register_new"
            android:screenOrientation="portrait" 
            android:windowSoftInputMode="adjustPan">
            <intent-filter>
                <action android:name="android.intent.action.ENTERSTOREREGISTERNEW" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

【讨论】:

  • adjustPan 和 adjustResize 将不起作用,因为登录按钮被截断了一点
  • 试试adjustResize|adjustPan
【解决方案3】:

您可以通过几个步骤来管理它。当KeyBoard 弹出然后执行以下步骤,或者您可以将它们包装在一个方法中......

  1. 获取窗口高度。
  2. 确定键盘高度。
  3. 使用scrollTo() 方法将视图滚动到键盘高度上方。

【讨论】:

  • “当键盘弹出”是一点点或更少的信息。是否有键盘监听器或 iOS 中的任何系统通知?此外,我读到没有确定键盘高度的方法
猜你喜欢
  • 1970-01-01
  • 2011-12-22
  • 2012-05-31
  • 1970-01-01
  • 2022-12-14
  • 2011-08-29
  • 1970-01-01
  • 1970-01-01
  • 2014-04-07
相关资源
最近更新 更多