一般的なandroidアプリはページの移動や更新にはプログレスバーを
使います。
今回は、読み込んでいる最中のみプログレスバーを出して、
読み終わったら次のページに飛ぶという流れをandroidの
ライフサイクルであるonResumeと組み合わせて作りました。
onResumeは、androidのactivityが戻るボタンによって再度呼ばれた時に
呼ばれるメソッドで、これが呼ばれる頃にはもうactivity内のuiは
触れる状態になっています。つまりこれが呼ばれた時には
プログレスバーが消えていてほしいので、onResumeの役割として
プログレスバーの管理を任せていることにしています。
考えていることは、プログレスバーをデフォルトでinvisibleにしておいて
次ページを読み込むときのみグルグル回す。移動した後は
プログレスバーをinvisibleにしてまた使えるようにスタンバらせる。
といった感じです。
このように実装してみました。
</pre> <pre><RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content"></pre> <pre><ProgressBar style="?android:attr/progressBarStyleLarge" android:id="@+id/progressBar" android:layout_width="wrap_content" android:layout_height="match_parent" android:visibility="invisible" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:layout_centerInParent="true" /> </RelativeLayout></pre> <pre>
styleは大きめで設定しております。
この他にもProgressBar.Small(小さいプログレスバー)や普通サイズの
ProgressBarも用意されておりアプリに合わせて最適な大きさを
選ぶことができます。
真ん中に設置しようとしてandroid:gravity=”center”を書くも
効かなかったのでcenterHorizontalとcenterVerticalで
真ん中寄せをしました。
続いてonResume内です。
</pre> @Override protected void onResume() { super.onResume(); progressBar.setVisibility(android.widget.ProgressBar.INVISIBLE); } <pre>
こちらはactivityが呼ばれた時にsetVisibilityを返すのみ。
後はコード側で好きなタイミングでvisibleに変えてあげればかっこよく
なれそうですね。