私はAndroid用のソフトキーボードを作っています。しかし、私のキーボードのデザインは非常に非伝統的です。つまり、私は伝統的なKeyboard
XMLレイアウトを使いたくないのですが、代わりにRelative Layout
を使いたいと思います。Androidの使い方レイアウトインフレータ
これは私が入力サービスを作成するために続くチュートリアルです:私が代わりに通常のキーボードレイアウトファイルのRelative Layout
を使用する方法を見ていたと私は、このスタックオーバーフローのポストを見つけ http://code.tutsplus.com/tutorials/create-a-custom-keyboard-on-android--cms-22615
レイアウトインフレータを使用してキーボードのスタンドアロンビューを作成する必要があるようです。しかし、私はstackoverflowポストに提示されたソリューションから何をすべきか理解していませんでした。
Relative Layout
ファイルを使用して、デフォルトのキーボードレイアウトファイルではなくカスタムキーボードのキーボードを設計する方法を説明できる人はいますか?
編集:ここでは
は私のプロジェクトのファイル構造である:
custom_keyboard_layoutは、私は私のキーボードが使いたいRelative Layout
ファイルです。
それは次のようになります。私は思っ
package com.roymunson.vroy.customtestkeyboard;
import android.inputmethodservice.InputMethodService;
import android.inputmethodservice.Keyboard;
import android.inputmethodservice.KeyboardView;
import android.view.View;
public class customInputMethod extends InputMethodService {
private Keyboard keyboard;
@Override public void onInitializeInterface() {
keyboard = new Keyboard(this, R.xml.custom_keyboard_layout);
}
@Override
public View onCreateInputView() {
KeyboardView mInputView = (KeyboardView) getLayoutInflater().inflate(R.layout.keyboard, null);
mInputView.setKeyboard(keyboard);
return mInputView;
}
}
:
<?xml version="1.0" encoding="utf-8"?>
<android.inputmethodservice.KeyboardView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/keyboard"
android:layout_alignParentBottom="true">
</android.inputmethodservice.KeyboardView>
マイcustomInputMethod.java
ファイルが、それはこのようになりますInputMethodService
です:
<?xml version="1.0" encoding="utf-8"?>
<!-- This is a very rough test version of the layout -->
<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"
tools:context="com.roymunson.vroy.customtestkeyboard.IntroScreen">
<Button
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="Custom Button." />
</RelativeLayout>
私Keyboard.xml
ファイルには、次のようになりますこれは動作し、相対レイアウトファイルを使用させます私のカスタムキーボードではありませんが、そうではありません。私は本当にこれに新しいので、何が間違っているのか分かりません。
何が間違っていますか?
:
は、その後、私はにコードを変更しました。どの部分が問題を抱えていますか? –
@MikeM。私は自分の投稿に編集を加えました。それは私の問題にいくつかの詳細を与える。 – Roymunson
代わりに 'inflate()'呼び出しを変更して 'R.id.custom_keyboard_layout'を使い、' mInputView'を 'RelativeLayout'に変更してください。 –