Я создаю пользовательский интерфейс для моей компании, у которого есть текст редактирования сверху и макет кадра внизу. эта рамка-макет содержит микрофонное изображение и анимацию при нажатии, из которых она проходит через 3 основных состояния, таких как listen.thinking и режим ожидания. Таким образом, пользователь может предоставить запрос либо путем ввода текста редактирования, либо путем предоставления команды по голосу. Моя проблема возникает, когда пользователь нажимает на edit-text для предоставления текстовой команды. Когда пользователь делает это, клавиатура Android появляется и пользователь вводит текст, но после ввода текста, если пользователь нажимает кнопку «Назад», весь пользовательский интерфейс появляется перед спуском. Все это происходит очень быстро, и пользователю он производит плохое впечатление. Похоже, что пользовательский интерфейс застревает, но по умолчанию он работает с Android. Есть ли способ, которым я могу остановить это мерцание или сделать этот ход плавно.?UI мерцает при нажатии на андроид
В настоящее время я делаю этот макет кадра невидимым, когда пользователь начинает редактирование и видно, когда пользователь закончил редактирование, но это также не помогает.
Я знаю, что, не предоставляя полный код, это не является хорошим способом задать сомнение.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLayout"
style="@style/main_style_mainLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<RelativeLayout
android:id="@+id/dialog"
style="@style/main_style_dialog"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_width="360dp"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ScrollView
>
<!--will dynamically add here widgets and edit text button as required>
<LinearLayout
android:id="@+id/linearLayout"
style="@style/main_style_scrollViewlinearLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</LinearLayout>
</ScrollView>
</LinearLayout>
</RelativeLayout>
<FrameLayout
android:id="@+id/mainControlLL"
style="@style/main_style_mainControlLL"
android:layout_width="fill_parent"
android:layout_height="wrap_content" > // Act as parent container for mic image and text view
<FrameLayout> //contains text view which gets displayed on top of mic image
<TextView/>
</FrameLayout>
<FrameLayout
android:id="@+id/mic_btn_layout"
style="@style/main_style_mic_btn_layout"
android:layout_width="wrap_content"
android:layout_height="118dp" >// contains mic images
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clipChildren="false" >// contains mic image for listening state
<ImageView/>
<ImageButton />
<ImageButton/>
<ImageView />
</FrameLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center_vertical|center" >//contain mic images for thinking state
<ImageButton />
<ImageButton />
<ImageView />
</RelativeLayout>
<ImageButton />//contains mic image for idle state
</FrameLayout>
</FrameLayout>
</RelativeLayout>
И в моем манифесте У меня есть
android:windowSoftInputMode="stateAlwaysHidden|adjustResize" and
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|locale"
Пожалуйста, дайте мне знать, как я могу исправить свое поведение пользовательского интерфейса.
У любого есть идеи, как это сделать? –
Вы что-то делаете в 'onConfigurationChanged'? Правильно ли работает 'adjustResize'? (т. е. ваш макет устанавливается в оставшееся пространство после отображения клавиатуры). Также без позиций и ширины/высоты в макете я не могу воспроизвести ваш случай. Можете ли вы разместить макет, который имеет все расположение/размеры, а также содержит набор типично отображаемых (динамически добавленных) виджетов? – Gyebro
У меня есть getWindow(). AddFlags (WindowManager.LayoutParams.FLAG_FULLSCREEN); в onCreate. Если я удалю этот пользовательский интерфейс, он не мерцает, но рамка, содержащая часть микрофона, выходит за клавиатуру. И мне нужен полный экран. –