2017-07-04 9 views
0

私は3つのタブを持つフラグメントを持っています。いずれかのタブには、バックグラウンドで同期が行われるときに回転するダイアログがあります。しかし、私は、バックグラウンドの同期が行われている間、他の部分で作業を続けることができる必要があります。部分的な画面上の進捗ダイアログ

私は現在、dialog.setCancelable(false)を使用してダイアログの外に出て、残りのアプリケーションを使用することができます。しかし、それは私に、同期が行われている断片の上に感情の画面を与えます。

画面の一部にダイアログをオーバーレイする方法はありますか(同期が行われている部分のみ)?言い換えれば、ダイアログをキャンセルせずに他のタブに移動できるように、画面全体を占有しないダイアログですか? Javaコードでダイアログの

実装:

dialog = new Dialog(getActivity()); 
    dialog.requestWindowFeature(Window.FEATURE_PROGRESS); 
    dialog.setCancelable(true); 
    dialog.setContentView(R.layout.dialog_progress_bar); 
    dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent); 

dialog.xml:あなたはDialogと、この動作を達成することはできません

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

    <ProgressBar 
     android:id="@+id/dialogProgressBar" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center"/> 

</LinearLayout> 
+1

なぜあなたは 'Dialog'でそれを示すのではなく、fragmnetのXMLで' progressBar'、すぐに使用しないでください。ここでは

は良いチュートリアルですか? – tahsinRupam

+0

ええ、それは動作します。ありがとう – leoOrion

答えて

1

いいえ、

あなたはFragmentを使用し、同期のprogressを表示したいので、私はあなたがsync状態ごとに、あなたのフラグメントlayout XMLの代わりDialogを使用して表示/非表示ProgressBarProgressBarを追加することができると思いますされています。

はSTATE:

  1. 同期がgoing onで、ProgressBarのみを表示し、他の人Viewsを非表示にします。
  2. シンクcompletedの場合は、ProgressBarを非表示にして、他のユーザーにはViewsを表示してください。

#です。フラグメントlayout XMLにSwipeRefreshLayoutを使用して、進行状況が進行中であることを示すこともできます。 syncが実行されている場合はshow円形のProgressBarsyncの場合はhideが自動的に完成します。これは〜するのに役立ちますAndroid Swipe Down to Refresh ListView Tutorial

希望

関連する問題