Force FullScreen на EditText в Android

В настоящее время я разрабатываю приложение с Samsung Galaxy Tab 2 в качестве своего устройства.

Мой код в XML:

<EditText
    android:id="@+id/analysis_text"
    style="@style/icon_text"
    android:imeOptions="actionDone"
    android:inputType="textMultiLine"
    android:onClick="onBtnClicked"
/>

При выполнении этого кода режим полноэкранного ввода данных (режим извлечения) запускается автоматически только в определенных ситуациях.

Я хочу, чтобы мои пользователи получили полный экран ввода данных при редактировании текста в этом элементе управления, независимо от экрана или расположения элемента управления.

Еще одна фраза этого вопроса: Как заставить полноэкранный режим ввода данных для полей EditText в моей деятельности независимо от того, что такое контент?

Ответ 1

Я решил эту проблему, которая не была решена, но нашла правильную работу.

Обходной путь заключается в том, что я разработал текстовый редактор (который похож на полноэкранный пользовательский интерфейс) и по щелчку каждого из этих EditBox активируется действие нового пользовательского интерфейса (с помощью startActivityForResult(), чтобы после их завершения управление возвращается к вызывающей активности), и после завершения редактирования текст передается обратно на главный экран.

Я также обеспечил, чтобы те коробки, которые передали элемент управления, не фокусировались, чтобы сразу передать управление новому пользовательскому интерфейсу.

Таким образом, я смог реализовать кнопку отмены, которая теперь фактически позволяет пользователю вернуться без сохранения изменений, которые он случайно делает.

Я открыт для новых идей, но это сработало для меня.

Код в Activity:

public void onBtnClicked(View v) {
    EditText current_text_box = (EditText) v;

    Intent intent = new Intent(ObservationActivity.this,
            TexteditorActivity.class);
    intent.putExtra("start_text", current_text_box.getText().toString());
    intent.putExtra("start_position", current_text_box.getSelectionStart());
    startActivityForResult(intent, v.getId());
} 

Код в XML:

<EditText
    android:id="@+id/observation_text"
    style="@style/icon_text"
    android:focusable="false"
    android:imeOptions="flagNoExtractUi"
    android:inputType="textMultiLine"
    android:onClick="onBtnClicked" >
</EditText>

Чтобы создать полноэкранный интерфейс, я использовал код, вы можете использовать любой (http://android-richtexteditor.googlecode.com/)

Ответ 2

Вы можете попробовать это

yourEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if(hasFocus){
                yourEditText.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
            }
        }
    });

Импортировать LayoutParams вашего родительского макета. Ваш ответ также будет хорошо работать.