特定のメニュー項目を操作したくない場合は、操作する必要はありません。
システムの不確定プログレス バー機能 (ActionBarSherlock に移植) を活用する別のアプローチを使用します。ここで説明するのは、将来の読者が自分に最適な方法を使用できるように、より多くのオプションを提供することです.
私の基本フラグメントには、読み込み中の UI のオンとオフを切り替えるために呼び出すメソッドがあります。以下は、縮小版です。
private void setLoading(final boolean isLoading)
{
final SherlockFragmentActivity sherlockActivity = getSherlockActivity();
sherlockActivity.runOnUiThread(new Runnable()
{
public void run()
{
// show loading progress bar
sherlockActivity
.setSupportProgressBarIndeterminateVisibility(isLoading);
// hide the rest of the menu
setMenuVisibility(!isLoading);
}
});
}
これが機能するには、正しいスタイルを使用するようにアクティビティを構成する必要があります。SherlockFragmentActivity.onCreate()
メソッドからこれを呼び出します。
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
最後のトリックは、HoneyComb より前のデバイスでは、プログレス バーがデフォルトですぐに表示されるようにすることです (HC 以降ではデフォルトで非表示になるのではなく)。
- 非表示に設定する必要があります
- このコードが機能する前に、Sherlock アクション バー インスタンスも作成する必要があります。
したがって、次のonCreate()
ようになります。
protected void onCreate(Bundle arg0)
{
super.onCreate(arg0);
// allow window to show progress spinner in the action bar
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
getSupportActionBar();
setSupportProgressBarIndeterminateVisibility(false);
}
これに関する詳細については、私の回答を確認してください。