/ / Створення андроїд спливаючої клавіатури - android, клавіатура, спливаюче вікно, ім'я

Створення клавіатури Android - android, keyboard, popup, ime

Я дотримувався прикладів на developer.android.com щодо методів введення та відтворюється з прикладом програми SoftKeyboard. Вони разом дають більш ніж достатньо інформації щодо створення простої клавіатури.

Я зробив спливаючу клавіатуру за допомогою "android: popupKeyboard".

<Row android:keyHeight="@dimen/key_height"
android:id="@+id/label"
>
<Key android:codes="97" android:keyLabel="a" android:horizontalGap="@dimen/horizontal_border_gap"
android:keyEdgeFlags="left" android:keyBackground="@drawable/key_btn_l" android:popupKeyboard="@xml/popup"/>
<Key android:codes="115" android:keyLabel="s" android:keyBackground="@drawable/key_btn_l"/>
<Key android:codes="100" android:keyLabel="d" android:keyBackground="@drawable/key_btn_l"/>
<Key android:codes="102" android:keyLabel="f" android:keyBackground="@drawable/key_btn_a"/>
<Key android:codes="103" android:keyLabel="g" android:keyBackground="@drawable/key_btn_l" android:popupKeyboard="@xml/popup"/>
<Key android:codes="104" android:keyLabel="h" android:keyBackground="@drawable/key_btn_a"/>
<Key android:codes="106" android:keyLabel="j" android:keyBackground="@drawable/key_btn_a"/>
<Key android:codes="107" android:keyLabel="k" android:keyBackground="@drawable/key_btn_a"/>
<Key android:codes="108" android:keyLabel="l" android:keyBackground="@drawable/key_btn_l"/>
<Key android:codes="45" android:keyLabel="-" android:keyEdgeFlags="right" android:keyBackground="@drawable/key_btn_a"/>
</Row>

У мене питання щодо спливаючого вікна.

  1. Я хочу показати спливаючий центр клавіатури. але спливаюче вікно відображається біля натиснутої клавіші. чи є ідея для показу спливаючого вікна в центрі клавіатури?

  2. при довгому натисканні клавіші відображається спливаюче вікно. Я хотів би показати спливаюче вікно при короткому натисканні. є якась ідея?

Якщо хтось знає рішення, будь ласка, допоможіть мені.

Відповіді:

0 для відповіді № 1

Спливаюче меню за замовчуванням налаштовується мало, але виможна створити власне спливаюче вікно для вашої клавіатури та налаштувати все, що вам потрібно. Я думаю, що ви можете зробити це за допомогою Dialog та PopupWindow, але PopupWindow найкращий у цьому випадку.

Створіть власну клавіатуруView, тоді ви можете використовувати такий метод, як onLongPress або onTouchEvent, якщо ви використовуєте onTouchEvent, ви можете рахувати час натискання клавіші, а потім показувати ваше popupWindow.

Щоб створити спливаюче вікно:

View view = LayoutInflater.from(context)
.inflate(R.layout.popup_layout, new FrameLayout(context));
popup = new PopupWindow(context);
popup.setContentView(view);
popup.setWidth(WindowManager.LayoutParams.WRAP_CONTENT);
popup.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
popup.showAtLocation(this, Gravity.CENTER, x, y);

Створіть змінні для x та y та отримайте на основі положення дотику.