Java 删除“;“永久页脚按钮”;当键盘被称为-材料设计
我的问题是,每当用户调用软键盘在同一版面上键入editText时,如何删除包含按钮的RelativeLayout。正如您在下面的图片中所看到的,每次用户输入信息时,红色框中的按钮都需要消失,并在键盘关闭后重新出现 仅供参考-当键盘不在视图中时,需要将RelativeLayout固定在底部,因此“layout_alignParentBottom='false'不是我的解决方案。我认为这很可能需要通过编程来完成 对于如何解决这个问题的任何建议,我们都将不胜感激Java 删除“;“永久页脚按钮”;当键盘被称为-材料设计,java,android,xml,material-design,Java,Android,Xml,Material Design,我的问题是,每当用户调用软键盘在同一版面上键入editText时,如何删除包含按钮的RelativeLayout。正如您在下面的图片中所看到的,每次用户输入信息时,红色框中的按钮都需要消失,并在键盘关闭后重新出现 仅供参考-当键盘不在视图中时,需要将RelativeLayout固定在底部,因此“layout_alignParentBottom='false'不是我的解决方案。我认为这很可能需要通过编程来完成 对于如何解决这个问题的任何建议,我们都将不胜感激 <RelativeLay
<RelativeLayout
android:id="@+id/footer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_margin="@dimen/activity_margin_zero"
android:background="@color/background"
android:minHeight="48dp"
android:padding="@dimen/activity_margin_zero">
以下是谷歌Android开发者网站所描述的“持久页脚按钮””
这就是我所拥有的,但当键盘在屏幕上时,所谓的“持久页脚按钮”应该消失
当键盘显示或消失时,按钮应位于键盘后面,以便用户能够以更真实的屏幕状态输入信息
您是否尝试过修改活动的
windowSoftInputMode
属性?
在清单中,对于相关活动,设置如下属性:
<activity android:name="MyActivity"
...
android:windowSoftInputMode="adjustPan"
... >
</activity>
注意:上面的代码将只针对虚拟键盘调用,也请查看此代码问题不在于没有足够的空间…只是RelativeLayout“按其应该的方式”固定在视图底部,因为它在键盘不可见时按设计工作(这样做的目的是,用户可以滚动屏幕,并且即使活动非常“高”,按钮也始终可见)。问题是,当用户输入信息时,相对位置应该消失(当键盘在屏幕上时,用户的注意力应该放在输入数据上)用户关闭键盘后,按钮可以返回。您好@Ajeet谢谢您的反馈,您的答案看起来很有希望。我如何收听键盘(显示/隐藏)?我不确定如何实现onConfigurationChanged方法的侦听器。如果您能告诉我如何在onCreate方法上实现此侦听器,我将不胜感激。抱歉,上面的代码不起作用。我自己尝试过。试试这个
RelativeLayout footer = (RelativeLayout) findViewById(R.id.footer);
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks whether a hardware keyboard is available
if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {
Toast.makeText(this, "keyboard visible", Toast.LENGTH_SHORT).show();
footer.setVisibility(View.VISIBLE)
} else if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES) {
Toast.makeText(this, "keyboard hidden", Toast.LENGTH_SHORT).show();
footer.setVisibility(View.INVISIBLE)
}
}