`
runfeel
  • 浏览: 927402 次
文章分类
社区版块
存档分类
最新评论

软键盘SoftInputMode

 
阅读更多

在AndroidManifest.xml文件中的android:windowSoftInputMode属性使用

TheAndroidManifest.xml File

<activityandroid:windowSoftInputMode=["stateUnspecified",

"stateUnchanged", "stateHidden",

"stateAlwaysHidden", "stateVisible",

"stateAlwaysVisible","adjustUnspecified",

"adjustResize", "adjustPan"] …… >

</activity>

attributes:

android:windowSoftInputMode

活动的主窗口如何与包含屏幕上的软键盘窗口交互。这个属性的设置将会影响两件事情:

1>软键盘的状态——是否它是隐藏或显示——当活动(Activity)成为用户关注的焦点。

2>活动的主窗口调整——是否减少活动主窗口大小以便腾出空间放软键盘或是否当活动窗口的部分被软键盘覆盖时它的内容的当前焦点是可见的。

它的设置必须是下面列表中的一个值,或一个”state…”值加一个”adjust…”值的组合。在任一组设置多个值——多个”state…”values,例如&mdash有未定义的结果。各个值之间用|分开。例如: <activityandroid:windowSoftInputMode="stateVisible|adjustResize" . . . >

在这设置的值(除"stateUnspecified"和"adjustUnspecified"以外)将覆盖在主题中设置的值

描述

"stateUnspecified"

软键盘的状态(是否它是隐藏或可见)没有被指定。系统将选择一个合适的状态或依赖于主题的设置。

这个是为了软件盘行为默认的设置。

"stateUnchanged"

软键盘被保持无论它上次是什么状态,是否可见或隐藏,当主窗口出现在前面时。

"stateHidden"

当用户选择该Activity时,软键盘被隐藏——也就是,当用户确定导航到该Activity时,而不是返回到它由于离开另一个Activity。

"stateAlwaysHidden"

软键盘总是被隐藏的,当该Activity主窗口获取焦点时。

"stateVisible"

软键盘是可见的,当那个是正常合适的时(当用户导航到Activity主窗口时)。

"stateAlwaysVisible"

当用户选择这个Activity时,软键盘是可见的——也就是,也就是,当用户确定导航到该Activity时,而不是返回到它由于离开另一个Activity。

"adjustUnspecified"

它不被指定是否该Activity主窗口调整大小以便留出软键盘的空间,或是否窗口上的内容得到屏幕上当前的焦点是可见的。系统将自动选择这些模式中一种主要依赖于是否窗口的内容有任何布局视图能够滚动他们的内容。如果有这样的一个视图,这个窗口将调整大小,这样的假设可以使滚动窗口的内容在一个较小的区域中可见的。这个是主窗口默认的行为设置。

"adjustResize"

该Activity主窗口总是被调整屏幕的大小以便留出软键盘的空间

"adjustPan"

该Activity主窗口并不调整屏幕的大小以便留出软键盘的空间。相反,当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分。这个通常是不期望比调整大小,因为用户可能关闭软键盘以便获得与被覆盖内容的交互操作。


关闭键盘

一、
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
//得到InputMethodManager的实例
if (imm.isActive()) {
//如果开启
imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, InputMethodManager.HIDE_NOT_ALWAYS);
//关闭软键盘,开启方法相同,这个方法是切换开启与关闭状态的
}

------------------------------------------
//隐藏软键盘-可行
int flags = WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
getWindow().addFlags(flags);

--------------------------------------------
在onclick事件下.以下方法可行.(如果是EditText失去焦点/得到焦点,没有效果)
InputMethodManager im = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
im.hideSoftInputFromWindow(getCurrentFocus().getApplicationWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
二、

// 关闭键盘
public void KeyBoardCancle() {

View view = getWindow().peekDecorView();
if (view != null) {

InputMethodManager inputmanger = (InputMethodManager) getSystemService(ActivityBase.INPUT_METHOD_SERVICE);
inputmanger.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}



分享到:
评论

相关推荐

    android 软键盘的隐藏域显示

    当软键盘弹出时,可以通过修改`WindowManager.LayoutParams`的`softInputMode`属性来调整窗口的布局行为,确保UI元素不会被软键盘遮挡。 以上知识点总结了如何在Android应用中有效地控制和管理软键盘,这对于优化...

    Android高级应用源码-android解决软键盘遮挡输入框的示例代码.rar

    在Android开发中,软键盘遮挡输入框是一个常见的问题,特别是在设计底部弹出框或者聊天界面时。当用户点击输入框触发软键盘弹出时,由于屏幕空间有限,输入框可能会被键盘遮挡,影响用户体验。这个"Android高级应用...

    Android屏蔽软键盘自动弹出的解决方案

    在Android应用开发中,经常会遇到一个用户界面设计问题:当用户在EditText中输入内容时,软键盘自动弹出,导致屏幕下方的输入区域被遮挡,严重影响用户体验。为了解决这个问题,开发者可以采取多种策略来避免软键盘...

    Android判断软键盘的状态和隐藏软键盘的简单实例

    之前本人也遇到一个关于获取软键盘的状态的问题,在网上找了很多资料,基本上回答都是用getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT_INPUT_STATE_UNSPECIFIED来判断软键盘是否打开...

    Android判断软键盘弹出并隐藏的简单完美解决方法(推荐)

    此外,`getWindow().getAttributes().softInputMode`属性虽然可以用来设置窗口对软键盘显示的处理方式,但它并不能用来直接判断软键盘是否可见。其常量`SOFT_INPUT_STATE_HIDDEN`表示软键盘在初始状态下是隐藏的,但...

    Android软键盘状态弹出与消失的示例

    在Android开发中,处理软键盘的弹出与消失是一个常见的需求。软键盘的状态会影响到应用程序界面的布局和用户体验。本文将详细讲解如何在Android中检测软键盘的弹出与消失,并提供相关的示例代码。 首先,Android...

    android adjustNothing下获取键盘高度

    在Android开发中,当用户在应用中使用软键盘时,屏幕布局可能会受到键盘弹出的影响。特别是对于那些希望保持背景不随键盘移动的应用,开发者需要掌握如何在`adjustNothing`模式下处理键盘出现时的问题。`...

    FullScreenKeyboard.zip

    标题提到的"FullScreenKeyboard.zip"文件可能包含了一个解决方案,用于解决在全屏模式下设置`softInputMode`失效的问题,以及如何监听并主动控制视图状态以适应软键盘弹出策略。下面将详细解释相关知识点。 首先,...

    datepickerdialog禁止自动弹出键盘

    当我们使用`DatePickerDialog`时,有时会遇到一个常见问题:当对话框显示时,系统默认可能会自动弹出软键盘,这可能不符合某些应用的设计需求,比如用户在特定场景下不需要手动输入日期,或者希望保持屏幕空间用于...

    Android 仿今日头条评论框 下载

    这个下载内容显然提供了一个实现此类功能的解决方案,它专注于在底部弹出并位于软键盘上方的评论框设计,使得用户在输入评论时能够方便地看到自己的文字。 首先,我们要理解"评论EditText"这一标签。`EditText`是...

    WindowManager.docx

    3. **WindowManager.LayoutParams.softInputMode**:这个属性控制软键盘(虚拟键盘)与窗口的交互方式: - `SOFT_INPUT_ADJUST_RESIZE`窗口大小会随软键盘的出现而改变。 - `SOFT_INPUT_ADJUST_PAN`窗口内容会随着...

    输入框中点击任何地方都可以取消输入键盘

    标题"输入框中点击任何地方都可以取消输入键盘"所涉及的知识点,主要是如何实现一个功能,使得用户在输入框中输入时,只需点击屏幕上的任意位置就能关闭软键盘,而不仅仅是点击输入框之外的地方。这种功能常见于各种...

    安卓键盘输入相关-仿今日头条进行点击弹出输入框输入法弹起。按返回键输入框和输入法同时消失。并且监听输入法随输入框消失而消失.rar

    在安卓系统中,EditText是用户输入文字的组件,当它获取焦点时,通常会自动弹出软键盘。但是,这个行为是可以被开发者控制的,比如通过设置WindowManager.LayoutParams中的softInputMode属性,可以决定输入法何时...

    android发帖页面

    这要求我们对Android系统的输入法服务有深入理解,能够正确处理软键盘的显示和隐藏,以及与第三方输入法的兼容问题。同时,还需要实现类似的表情选择器,这通常涉及到自定义`EditText`和`Adapter`,以展示和选择表情...

    ListView和EditText

    此外,还可以利用Android的SoftInputMode属性来调整软键盘的行为,例如设置为"adjustPan",使得键盘弹出时,EditText会自动上移,避免遮挡输入区域。 在实现这些功能时,我们可以创建一个名为MyTestDemo的项目,...

    Android系统工具类详解

    `softInputMode(Activity activity)`方法通过设置窗口的软输入模式(`SOFT_INPUT_ADJUST_RESIZE`和`SOFT_INPUT_STATE_HIDDEN`),防止在Activity启动时自动弹出软键盘。这样可以避免键盘遮挡应用界面,尤其在不需要...

    Android应用程序窗口(Activity)窗口对象(Window)创建指南

    3. 如果在AndroidManifest.xml中指定了软键盘模式(softInputMode),则通过mWindow.setSoftInputMode()方法设置Window对软键盘的显示策略。 4. 使用mWindow.setWindowManager()方法初始化WindowManager,...

    android多种动画效果demo

    输入法相关动画主要涉及到软键盘的显示和隐藏,以及与输入框的交互。Android系统默认提供了键盘弹出和隐藏的动画,但开发者可以通过监听`SoftInputMode`属性来自定义这部分行为。例如,可以监听`onGlobalLayout()`...

Global site tag (gtag.js) - Google Analytics