gpt4 book ai didi

java - Android IME 中类似 Gboard 的搜索栏

转载 作者:行者123 更新时间:2023-12-04 23:43:06 26 4
gpt4 key购买 nike

如图所示,我想在键盘内(Android IME)创建一个类似 Gboard 的搜索栏。

Gboard 样本:

Gboard Sample

如图所示,我在 Keyboardview.xml 上实现了一个 edittext。

我的实现:

My Implementation

main_keyboard_frame.xml

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="120dp"
android:background="#cf060610"
android:id="@+id/search_panel"
android:visibility="invisible">

<EditText
android:layout_width="match_parent"
android:layout_height="40dp"
android:hint="sdsddsd"
android:id="@+id/ed"/>



</RelativeLayout>

但问题是当我按下edittext 2(即在我的ime之外)时,我的ime是打开的,其中包含edittext 1,如上图所示,现在当我从我的ime中写一些东西时,它写在edittext 2而不是edittext 1上所以我想知道这背后的问题是什么?是重点吗?或者是其他东西?

最佳答案

所以,我得到了解决这个问题的线索,来自 Abdul Wajidcomment以上。
我用这个LatinIME .只需要更新这一行

public void onEvent(final Event event) {
final InputTransaction completeInputTransaction =
mInputLogic.onCodeInput(mSettings.getCurrent(), event);
updateStateAfterInputTransaction(completeInputTransaction);
mKeyboardSwitcher.onEvent(event, getCurrentAutoCapsState(), getCurrentRecapitalizeState());
}
停止提交以某种逻辑情况按下的事件键,
public void onEvent(final Event event) {
if (mEditField.isFocused()){
Log.d("LatinIME : field focused", "On Event: " + event.getTextToCommit() );
mEditField.append(event.getTextToCommit());
} else {
final InputTransaction completeInputTransaction =
mInputLogic.onCodeInput(mSettings.getCurrent(), event);
updateStateAfterInputTransaction(completeInputTransaction);
mKeyboardSwitcher.onEvent(event, getCurrentAutoCapsState(), getCurrentRecapitalizeState());
}
}
完成后,您可以控制按下的事件类型。

关于java - Android IME 中类似 Gboard 的搜索栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55176159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com