간단한 시나리오를 알려 드리겠습니다.ActionbarSherlock menuitem setActionView (null)은 회전을 멈추지 않습니다.
somethings가로드되는 동안 indeterminateProgressStyle (순환 원)으로 전환하는 내 작업 표시 줄에 새로 고침 버튼이 있어야합니다.
내 프로젝트에는 다음과 같은 레이아웃이 있습니다. (예 : res/layout/actionbar_indeterminate_progress.xml)
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center">
<ProgressBar android:layout_width="32dp"
android:layout_height="32dp"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:layout_gravity="center"
style="?android:attr/indeterminateProgressStyle" />
</FrameLayout>
사용자가 새로 고침 버튼을 클릭하면 다음을 수행합니다.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.main, menu);
refreshMenuItem = menu.findItem(R.id.menu_refresh);
if (refreshMenuItem != null) {
// Show refresh button if we are in action bar mode, but only if
// there's something to be refreshed
boolean selectedItemExists = (getCurrentBrowsingContainer() != null);
refreshMenuItem.setVisible(selectedItemExists);
if (is_spinner_running) {
refreshMenuItem.setActionView(R.layout.actionbar_indeterminate_progress);
} else {
refreshMenuItem.setActionView(null);
}
}
return super.onCreateOptionsMenu(menu);
}
또한 내 res/menu/main.xml은 다음과 같습니다.
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
...
<item android:id="@+id/menu_refresh" android:icon="@drawable/ic_menu_refresh" android:showAsAction="always" android:title="@string/refresh" />
<item android:id="@+id/menu_search" android:title="@string/menu_search" android:icon="@android:drawable/ic_menu_search" android:showAsAction="never" />
<item android:id="@+id/settings" android:title="@string/settings" android:icon="@android:drawable/ic_menu_preferences"></item>
<item android:id="@+id/exit" android:title="@string/exit" android:icon="@android:drawable/ic_menu_close_clear_cancel"></item>
...
</menu>
문제는 예를 들어 초상화로 내 활동을 시작하고 새로 고침 버튼을 누르면 멋지게 중단된다는 것입니다. 이제 저는 그것을 회전시키고 새로 고침 버튼을 다시 누르지 만, 이제는 어떤 이유로 든 불확정 진도를 보여줍니다. 나는 체크했다. refreshMenuItem.setActionView (null)가 호출되었지만, 여전히 불확정성을 보여주는 것을 계속 유지한다. 또한 refreshMenuItem이 어떤 이유로 보이지 않는 것처럼 보입니다. 왜냐하면 indetermintate 진행을 클릭하면 onOptionsItemSelected가 호출되지 않기 때문입니다.
그래서 다른 샘플 app을 사용해 보았는데 문제없이 완벽하게 작동합니다. 그래서 나는 어디서 잘못 될 수 있는지 궁금합니다. 모든 포인터가 도움이 될 것입니다.
이것이 해결책 인 경우 이것을 대답으로 받아 들인다. :) –