Android的:如何使键盘始终可见?(Android: How to make the keypa

2019-07-20 13:47发布

在Android中,我们如何使设备始终键盘中可见的应用程序? 顶部显示的应用程序要呈现的内容和底部总是显示键盘。

Answer 1:

添加机器人:windowSoftInputMode =“stateAlwaysVisible”在AndroidManifest.xml文件的活动:

<activity android:name=".MainActivity"
android:label="@string/app_name"
android:windowSoftInputMode="stateAlwaysVisible" />

在我的测试应用程序这显示了应用程序的启动虽然没有固定的有,但可以按后退按钮被开除键盘。

为了确保键盘总是可见,您可能需要创建自己的键盘为您的应用程序的用户界面的一部分。 这里是一个教程向您展示如何用KeyboardView做到这一点: http://www.fampennings.nl/maarten/android/09keyboard/index.htm



Answer 2:

你必须有一个EditText的布局和需要程度EditText基类。 然后覆盖onKeyPreIme()方法,并返回 现在你的键盘会总是可见,不能由返回键被开除。

注意 :因为你的onKeyPreIme()方法返回true使用返回键,你不能退出你的应用程序。

例:

public class CustomEdit extends EditText {

    public CustomEdit(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
    }
    @Override
    public boolean onKeyPreIme(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        Log.e("Log", "onKeyPreIme");
        return true;
        //return super.onKeyPreIme(keyCode, event);
    }
}

onKeyPreIme() - Android开发者



Answer 3:

我发现,工作对我来说,保持软键盘可见在我的编辑后一种方式myEditText类领域EditText 。 关键是要覆盖onEditorAction方法,让它返回true

  myEditText.setOnEditorActionListener(new OnEditorActionListener() {                     
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
      return true;
    }       
  });

否则有onEditorAction返回true只有“完成”键单击(后IME_ACTION_DONE ),否则false

  myEditText.setOnEditorActionListener(new OnEditorActionListener() {                     
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
      if(actionId==EditorInfo.IME_ACTION_DONE){
        Log.i(LOG_TAG, "IME_ACTION_DONE");
        return true;    
      }
      return false;
    }       
  });

(另见这个答案在onEditorAction法)

添加android:windowSoftInputMode="stateAlwaysVisible清单文件帮助有在活动显示的软键盘开始,但它并没有阻止它再次消失,只要‘完成’键被编辑后点击。



文章来源: Android: How to make the keypad always visible?