これについてまだアイデアが必要ですか?アプリに同じことを実装しましたが、ダイアログとしてではなく、互いに重なる 2 つのレイアウトがありました。次に、visibility を設定して 2 つのレイアウトを切り替えます.setVisibility()
。実際の進行状況バー自体については、これを使用します。
編集:これが私のXMLファイル全体です:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:background="@drawable/background">
<RelativeLayout android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/search_header" android:background="@drawable/header">
<!-- Some things I need for the header (title, etc) -->
</RelativeLayout>
<LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content"
android:id="@+id/spinner_layout" android:layout_below="@+id/search_header"
android:layout_centerHorizontal="true" android:layout_centerVertical="true">
<ProgressBar android:id="@+id/title_progress_bar"
style="?android:attr/progressBarStyleSmallTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:visibility="visible"
android:indeterminateOnly="true"/>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/loading_label" android:text="Loading..."
android:layout_gravity="center_vertical" android:layout_marginLeft="5dip">
</TextView>
</LinearLayout>
<RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/search_header" android:id="@+id/list_contents">
<!-- Stuff you want to show after returning from the AsyncTask -->
</RelativeLayout>
</RelativeLayout>
このレイアウトを で使用するActivity
のでAsyncTask
、onPreExecute()
次のようにします。
@Override
protected void onPreExecute(){
findViewById(R.id.list_contents).setVisibility(View.GONE);
findViewById(R.id.spinner_layout).setVisibility(View.VISIBLE);
}
そして、私がしなければならないことは何でもしてくださいonPostExecute()
。
@Override
protected void onPostExecute(Cursor cursor){
findViewById(R.id.list_contents).setVisibility(View.VISIBLE);
findViewById(R.id.spinner_layout).setVisibility(View.GONE);
}