Делаем отключенную группу просмотра более эстетичной
У меня довольно тривиальный вопрос, но я подумал, что смогу это сделать. Я пишу приложение для Android, и у меня есть форма группы просмотра, которая загружается с веб-сервера. Пока работает доступ в интернет, я использовал всплывающее диалоговое окно с индикатором выполнения. Я решил, что это выглядело бы менее неуклюже, если бы я заглянул в симпатичный маленький неопределенный индикатор выполнения в строке заголовка.
Опция строки заголовка выглядит менее занятой, за исключением того, что элементы формы (текстовые представления, кнопки и т. Д.) Все включены во время поиска. Затем я использовал рекурсивную подпрограмму, чтобы отключить все представления в группе видов, но это опять-таки выглядит ужасно - серые текстовые представления (2.3.3) выглядят грубыми, особенно те, которые имеют фокус с оранжевой полосой вокруг него. Если я выскакиваю индикатор выполнения, базовый вид выглядит красиво отключенным - окно позади него просто медленно затухает. С визуальной точки зрения гораздо более очевидно, что мы ожидаем, что что-то произойдет, когда все окно затемнено, а не сталкивается с кучей отключенных элементов управления.
Можно ли сделать такой же вызов, чтобы отключить представление, как это делает ОС, когда индикатор выполнения или другое окно перекрываются сверху? Это дало бы мне лучшее из обоих миров.
Я предполагаю, что другой вариант - установить представление невидимым во время доступа, но мне стало любопытно, потому что я вижу, что ОС делает именно то, что я хочу, когда я использую всплывающее окно.
1 ответ
Я понял, как это сделать, используя относительную компоновку с диалоговым окном прогресса, завернутым в компоновку фрейма, перекрывающую основной вид. Когда я получаю свою сеть, я устанавливаю видимость макета кадра на видимый с фоном, установленным на полупрозрачный, и отключаю элементы управления в базовом представлении. Работает довольно хорошо.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ScrollView
android:id="@+id/itemView"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</ScrollView>
<FrameLayout
android:id="@+id/itemProgress"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#55000000"
android:visibility="gone"
>
<ProgressBar
style="?android:attr/progressBarStyleLarge"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center|center_vertical"
android:indeterminateOnly="true"
/>
</FrameLayout>
</RelativeLayout>