1

私は Android Sample SoftKeyboardに取り組んできました。それはかなり理にかなっていますが、私は問題に遭遇しました。キーボードは画面の約 88% (540 ピクセルの画面の 480 ピクセル) しか占有しません。

どうやら 2.3.4 に問題がある Atrix 4G で開発していますが、qHD 画面を備えた元のデバイスでは、ほとんどのキーボードが正しく表示されません (これはしばらくの間、CM7 でも問題でした)。 )。私が見つけることができるすべてのキーボードは修正されていますが、どうやってこれを達成したのかはわかりません。

キーボードは、エミュレーター (画面幅 480 ピクセル) で期待するとおりに表示されます。デバイス自体が奇妙になるだけです。

IME の幅を制御するように見えるサンプルのコードを以下に示しますが、画面解像度の明示的な幅に設定しても問題は解決しません。

/**
 * This is the point where you can do all of your UI initialization.  It
 * is called after creation and any configuration change.
 */
@Override public void onInitializeInterface() {
    if (mQwertyKeyboard != null) {
        // Configuration changes can happen after the keyboard gets recreated,
        // so we need to be able to re-build the keyboards if the available
        // space has changed.
        int displayWidth = getMaxWidth();
        if (displayWidth == mLastDisplayWidth) return;
        mLastDisplayWidth = displayWidth;
    }
    mQwertyKeyboard = new LatinKeyboard(this, R.xml.qwerty);
    mSymbolsKeyboard = new LatinKeyboard(this, R.xml.symbols);
    mSymbolsShiftedKeyboard = new LatinKeyboard(this, R.xml.symbols_shift);
}

編集:少なくとも一時的な回避策が見つかりました。互換モードを無効にすると、アプリが適切にレンダリングされます...ただし、アプリは正しい API バージョン (Gingerbread/10) を使用してデプロイされるため、これが必要な理由はわかりません。

4

1 に答える 1

1

マニフェスト ファイルで SDK のバージョンを設定する必要があります。

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="8" />
于 2012-03-26T09:43:27.787 に答える