0

私はしばらくの間これを調べてきましたが、解決策を見つけることができませんでした。

ProgressDialog を作成すると、メイン ビューが灰色になり、フォーカスが失われます。私がやりたいことは、メイン ビューの要素をフォーカスしたままにして (Admob としましょう)、ProgressDialog が表示されている間も使用できるようにすることです。

更新:コード!

View mainview = LayoutInflater.from(MainAct).inflate(R.layout.activity_main, null);

        View adView = mainview.findViewById(R.id.adView);
        mProgress = new ProgressDialog(MainAct);
        mProgress.setMessage("Downloading...");
        mProgress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        mProgress.setCancelable(false);
        mProgress.setCanceledOnTouchOutside(false);
        mProgress.show();
        adView.requestFocus();

reaquestFocus を使用しても機能しないようで、フォーム要素のみを対象としており、TOP に要素を持ち込むことはありません

更新 2: サンプル

4

1 に答える 1

0
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/linlaHeaderProgress"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center"
            android:orientation="horizontal"
            android:visibility="gone" >

            <ProgressBar
                android:id="@+id/pbHeaderProgress"
                style="@style/Spinner"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="2dp" >
            </ProgressBar>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:gravity="left|center"
                android:padding="2dp"
                android:text="Loading...."
                android:textColor="#F1F1F1"
                android:textSize="20sp" >
            </TextView>
        </LinearLayout>

        <ListView
            android:id="@+id/list"
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1"
            android:cacheColorHint="@android:color/transparent"
            android:divider="#000000"
            android:dividerHeight="0dp"
            android:fadingEdge="none"
            android:persistentDrawingCache="scrolling" >
        </ListView>

        <TextView
            android:id="@android:id/empty"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center"
            android:padding="10dp"
            android:textColor="#f1f1f1"
            android:textSize="15sp"
            android:textStyle="bold"
            android:visibility="gone" >
        </TextView>
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="bottom|center"
        android:orientation="horizontal" >

        <com.google.ads.AdView
            android:id="@+id/adView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            ads:adSize="SMART_BANNER"
            ads:adUnitId="MY_AD_UNIT_ID"
            ads:loadAdOnCreate="true"
            ads:testDevices="TEST_EMULATOR, MY_TEST_DEVICE_ID" />
    </LinearLayout>

</LinearLayout>

上記のコードは、私のアプリでほぼ独占的に使用されるレイアウト用です。データのロード中に行うことは非常に簡単です。

ProgressBar が XML でどのように定義されているかを見てください。まだデータをロードしている間に、属性が設定されているため、その下にある を効果的に非表示にする に変更LinearLayout linlaHeaderProgressします。データの読み込みが完了したら、 の可視性を に変更します。ここで注意すべき点は、XML の一番下にある Admob XML が常にユーザーに表示され、データの読み込み中または読み込み完了後のいつでも操作できることです。VISIBLEListViewLinearLayout linlaHeaderProgressGONE

この XML を の形式で表示する必要がある場合は、Dialogこのアクティビティにテーマを添付することでいつでも実行できます。

これがあなたの努力に役立つことを願っています。

アップデート

これらのチュートリアルを確認してください。これらは、を表示するためのクイック検索で見つけることができたいくつかHorizontal ProgressBarです。を使用していProgressDialogます。

  1. http://www.techrepublic.com/blog/app-builder/androids-batterymanager-and-progressbar-two-for-one-tutorial/703

  2. http://theandroid.in/example-of-progressbar-in-android/

最後に、このGoogle 検索を使用して、アクティビティをダイアログのように見せるいくつかの例を確認してください。

これは、スクリーンショットが示唆するものを達成するのに役立ちます。

于 2013-01-25T10:29:34.317 に答える