【发布时间】:2014-02-14 16:30:40
【问题描述】:
我在我的活动中制作了一个圆形进度条。它运作良好。但是当进度条关闭时,它会从进度条中留下一些残留物,如图所示。我想我需要刷新进度条,以便我可以再次取回干净的操作栏。第一个图是进度条运行时的图,第二个图是进度条关闭时的图(圆形箭头是残差)。我的代码如下。我怎样才能再次拥有干净的操作栏?
(1)res/menu 中的airport_menuRefresh.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/airport_menuRefresh"
android:icon="@drawable/ic_menu_refresh"
android:title="@string/menuitem_refresh"
android:alphabeticShortcut="r"
android:orderInCategory="1"
android:showAsAction="always" />
</menu>
(2)布局中的actionbar_indeterminate_progress.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="50dp"
android:minWidth="50dp">
<ProgressBar android:layout_width="35dp"
android:layout_height="35dp"
android:layout_gravity="center"
/>
</FrameLayout>
(3)菜单膨胀
public boolean onCreateOptionsMenu(Menu menu) {
this.optionsMenu = menu;
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.airport_menu, menu);
return super.onCreateOptionsMenu(menu);
}
(4)打开/关闭进度条的方法
public void setRefreshActionButtonState(final boolean refreshing) {
if (optionsMenu != null) {
final MenuItem refreshItem = optionsMenu
.findItem(R.id.airport_menuRefresh);
if (refreshItem != null) {
if (refreshing) {
refreshItem.setActionView(R.layout.actionbar_indeterminate_progress);
} else {
refreshItem.setActionView(null);
}
}
}
}
【问题讨论】: