我的应用中有一个EditText字段,我希望软键盘默认显示OK按钮。当我按下shift键允许创建一个新行时,我也希望这个OK按钮切换到默认的Enter按钮。 我没有办法做到这一点。 现在我只使用
显示OK按钮edit.setImeOptions(EditorInfo.IME_ACTION_DONE);
在一条线上。 我需要的是与主屏幕“添加快速备注”字段中Google保持应用程序中显示的键盘相同的键盘
答案 0 :(得分:1)
我已经从Android AOSP来源查看了Compose活动并构建了它:
我将这个类复制到我的测试项目(包名com.example.test)中:
然后创建了这个布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<com.example.test.EnterSubject
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:inputType="textEmailSubject|textAutoCorrect|textCapSentences|textImeMultiLine|textMultiLine"
android:imeOptions="actionDone|flagNoExtractUi|flagNoFullscreen"
android:layout_below="@+id/textView1"
android:layout_marginTop="18dp"
android:ems="10" >
<requestFocus />
</com.example.test.EnterSubject>
</RelativeLayout>
这基本上是这个文件的重构版本: https://android.googlesource.com/platform/packages/apps/UnifiedEmail/+/5b8799a/res/layout/compose_subject.xml 和这个文件: https://android.googlesource.com/platform/packages/apps/UnifiedEmail/+/5b8799a/res/values/styles.xml
结果如下:按下shift键将下一个按钮变为输入按钮。