2014-02-20 290 views
17

我有一个简单的登录视图,如下所示。Android软键盘隐藏按钮

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

Keyboard

我需要的是,在底部(注册&帮助)按钮是无形,而键盘的显示。登录按钮的底端应在键盘上,这样既EditTextsLogin Button可见。如果可能的话(取决于屏幕尺寸)

这将是完全正常的,如“键盘是可见的”如果可能的话来定义一个额外的布局XML

在LOGO的最好的一半应该是可见的。

+0

你检查adjustPan或adjustResize清单中 – user2450263

+1

是的,我做到了,但随后的登录按钮变得截止有点 – Alexander

+1

<活动 机器人:windowSoftInputMode =“adjustPan” – usman

回答

3

财产以后做类似的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> 
+0

adjustPan以及adjustResize不会起作用,因为登录按钮得到截止有点 – Alexander

+0

试adjustResize | adjustPan –

+0

不工作或者 – Alexander

1

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

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

“当键盘弹出”有点少的信息。是否有像iOS一样的键盘监听器或任何系统通知?此外,我读到,有没有方法来确定键盘的高度 – Alexander

2

1)ScrollView作为父级布局,以便它可以由用户滚动。仅使用adjustResize

3)使用 software keyboard show/hide event有更多的控制

2)。您可以使用View.GONE在键盘显示时设置登录按钮下面的布局可视性。

extra:

Check Specifying the Input Method Type。为方便用户下一步,做动作

+2

我没有得到使用自定义键盘布局的要点。为什么我需要这个?我只想设置一些视图,如果显示键盘不可见,并稍微改变滚动视图内容偏移量。没有其他方法吗?不能相信这是很难的。在iOS中,就像5行代码来实现这种行为... – Alexander

+0

@Alexander所以首先添加adjustResize属性。然后使用OnTouch出现内部代码键盘(将所有editText设置为侦听同一个OnTouch),并在OnTouch内部设置一些您不想显示的视图的可见性。在后退按钮上(我们假设会隐藏键盘)将可见性设置为可见,以再次显示视图。 (注意:如果是正确处理所有键盘消失,请自行测试。) – qwr

+0

@亚历山大检查。我认为您可以使用这些解决方案 – qwr