0

ささいな質問がありますが、試してみようと思いました。私はAndroidアプリを書いていますが、Webサーバーから読み込まれるビューグループフォームがあります。インターネットアクセスの実行中に、プログレスバーのあるダイアログボックスをポップアップするのが常でした。タイトルバーの小さな不確定なプログレスバーに移動すると、見た目が不格好になりにくいと判断しました。

タイトルバーオプションは、フォームアイテム(テキストビュー、ボタンなど)が取得中にすべて有効になっていることを除いて、それほど忙しくないように見えます。次に、再帰ルーチンを使用してビューグループ内のすべてのビューを無効にしましたが、これも見苦しいように見えます。グレー表示されたテキストビュー(2.3.3)は、特にフォーカスがあり、周囲にオレンジ色のバーがあるものは全体的に見えます。プログレスバーをポップアップすると、下にあるビューがうまく無効になっているように見えます。後ろのウィンドウは単にゆっくりと暗くなります。視覚的な観点からは、ウィンドウ全体が暗くなったときに何かが発生するのを待っているのは、無効になっている多数のコントロールに直面するのではなく、はるかに明白です。

プログレスバーまたは他のウィンドウが上に重なっているときにOSが行うのと同様の方法でビューを無効にするための呼び出しはありますか?これは私に両方の長所を与えるでしょう。

他のオプションは、アクセス中にビューを非表示に設定することだと思いますが、ポップアップを使用すると、OSが希望どおりに動作しているのを見ることができるので、興味がありました。

4

1 に答える 1

0

メインビューと重なるフレームレイアウトにラップされた進行状況ダイアログを備えた相対レイアウトを使用して、これを行う方法を理解しました。ネットワーク取得を行うときは、フレームレイアウトの可視性を、背景を半透明に設定して表示するように設定し、基になるビューのコントロールを無効にします。かなりうまく機能します。

<?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>
于 2012-04-13T15:44:55.393 に答える