当进度条关闭时,操作栏在进度条中有一些残留

时间:2014-02-14 16:30:40

标签: android android-layout

我在我的活动中制作了循环进度条。它运作良好。但是当进度条关闭时,它会从进度条中留下一些残差,如图所示。我想我需要刷新进度条,这样我才能再次回到干净的Action Bar。第一个数字用于进度条运行时,第二个数字表示进度条关闭时(圆形箭头是残差)。我的代码如下。我怎样才能再次使用干净的动作栏?

(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);
                }
            }
        }
    } 

enter image description here enter image description here

1 个答案:

答案 0 :(得分:0)

我可以将airport_menuRefresh可见性设置为关闭以将其删除。 感谢