Образец SoftKeyboard, появившийся в сжатом виде на qHD-экране Android Gingerbread Motorola Atrix - PullRequest
1 голос
/ 11 января 2012

Я работаю на Android Образец SoftKeyboard . Это имеет смысл, но я столкнулся с проблемой. Клавиатура будет заполнять только приблизительно 88% экрана (480 пикселей на экране 540 пикселей).

Я разрабатываю на Atrix 4G, у которого, по-видимому, есть проблема с 2.3.4, насколько я могу судить, оригинальные устройства с экранами qHD не показывают большинство клавиатур правильно (это была проблема с CM7 для пока так же). Каждая клавиатура, которую я могу найти, исправлена, но я не знаю, как они достигли этого.

Клавиатура показывает именно то, что я ожидал от Эмулятора (ширина экрана 480px), просто на самом устройстве это странно.

Код в образце, который, по-видимому, управляет шириной 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).

1 Ответ

1 голос
/ 26 марта 2012

Вам необходимо установить версию SDK в файле манифеста:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="8" />
...