繁体   English   中英

如何在 Android 中将 EditText 粘在软键盘上

[英]How to have an EditText stuck to the soft keyboard in Android

我正在尝试制作类似下图的东西,当活动开始时键盘会自动打开,并且EditText和发送按钮粘在键盘上。

在此处输入图片说明

使用以下代码在活动启动时自动弹出软键盘

InputMethodManager imm = (InputMethodManager)getSystemService(
    Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(youredittext, 0);

确保您没有在 manifest.xml 中定义android:windowSoftInputMode="stateHidden"

要使用页脚附加 Edittext,请使用以下代码:

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="#f3f3f3"
        android:paddingBottom="10.0dip"
        android:paddingTop="10.0dip"
        android:id="@+id/bottom_bar" >

        <EditText
            android:id="@+id/et_send_bar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="10.0dip"
            android:layout_toLeftOf="@+id/ib_send"
            android:hint="Enter Message"
            android:singleLine="true" />

        <ImageView
            android:id="@+id/ib_send"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/et_send_bar"
            android:layout_alignParentRight="true"
            android:layout_alignTop="@+id/et_send_bar"
            android:layout_marginBottom="1px"
            android:layout_marginRight="10.0dip"
            android:layout_marginTop="1px"
            android:background="@drawable/chatsend_bg"
            android:paddingBottom="5.0dip"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:paddingTop="5.0dip"
            android:src="@drawable/ic_send_dark_normal" />
    </RelativeLayout>

要在Activity开始时显示键盘,您需要像这样使用:

 <activity android:name="com.your.package.ActivityName"
          android:windowSoftInputMode="stateVisible"  />

来自 Android 文档:

状态可见

通常情况下,软键盘是可见的(当用户向前导航到活动的主窗口时)。

要在Activity开始时隐藏键盘,您需要像这样使用:

在您的 AndroidManifest.xml 中:

<activity android:name="com.your.package.ActivityName"
          android:windowSoftInputMode="stateHidden"  />

来自 Android 文档:

状态隐藏

当用户选择活动时,软键盘是隐藏的——也就是说,当用户肯定地向前导航到活动时,而不是因为离开另一个活动而返回。

此设置将在用户进入新 Activity 时隐藏软键盘(即使 EditText 控件获得焦点)。 仅当用户单击编辑框控件时才会显示软键盘。

我还找到了另一种在软键盘应用程序时向上移动布局组件的解决方案。

可以使用AndroidManifest.xml adjustResize属性来实现

adjustResize属性的主要目的是 Activity 的主窗口总是调整大小,以便为屏幕上的软键盘腾出空间。

要在Activity开始时显示键盘并向上移动EditText ,您需要像这样使用:

<activity android:name="com.your.package.ActivityName"
          android:windowSoftInputMode="adjustResize" />

我认为它对您有用:将清单文件中的此语句添加到您的活动中: android:windowSoftInputMode="stateHidden"

  <activity
        android:name="ConversationActivity"
        android:label="@string/title_activity_conversations"
        android:launchMode="singleTask"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="stateHidden" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM