gwv*_*eri 1 android android-actionbar
很明显,为了显示/隐藏不确定的进度,您必须使用此方法:
itemMenu.setActionView(...);
Run Code Online (Sandbox Code Playgroud)
所以:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_refresh:
item.setActionView(R.layout.indeterminate_progress_action);
runAsyncTask();
...
}
}
Run Code Online (Sandbox Code Playgroud)
我不清楚的是:如何将操作视图设置回null.我不想保留对MenuItem的引用,我不认为它是正确的,因为我不想假设有关OptionsMenu生命周期的任何内容.
如何在onPostExecute上将操作视图设置为null?
我是这样做的:
refresh = false; // the future state of your indeterminate progress
invalidateOptionsMenu(); // trigger the recreation of the menu and call onCreateOptionsMenu(Menu)
Run Code Online (Sandbox Code Playgroud)
然后在你的onCreateOptionsMenu(Menu)方法中:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
{
super.onCreateOptionsMenu(menu, inflater);
MenuItem refreshItem = menu.add(Menu.NONE, R.id.action_bar_refresh, 1, "Refresh");
refreshItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
if(refresh)
refreshItem.setActionView(R.layout.indeterminate_progress_action);
else
refreshItem.setIcon(R.drawable.ic_menu_refresh);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2959 次 |
| 最近记录: |