在ActionBarActivity扩展的Activity中,我使用supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
和setSupportProgressBarIndeterminateVisibility(true);
将迷你进度对话框显示为操作栏项目菜单。
如何将更多内容分隔到屏幕上?
谢谢!
答案 0 :(得分:0)
不知道你是如何实现那个微小的进度条但是......据我所知你需要为此创建一个自定义视图,对吧?像这样:创建一个像RefreshMenuItemHelper的新类:
public class RefreshMenuItemHelper {
private WeakReference<MenuItem> item;
/**
* Set the menu item.
* @param item
*/
public void setMenuItem(MenuItem item) {
this.item = new WeakReference<MenuItem>(item);
}
/**
* Show the indeterminate progress.
*/
public void showLoading() {
if(item != null) {
item.get().setActionView(R.layout.menu_item_action_refresh);
item.get().expandActionView();
}
}
/**
* Stop and dismiss the indeterminate progress.
*/
public void stopLoading() {
item.get().collapseActionView();
item.get().setActionView(null);
}
}
menu_item_action_refresh只是一个简单的布局:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="56dp"
android:layout_height="wrap_content"
android:minWidth="56dp">
<ProgressBar
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_gravity="center"/>
</FrameLayout>
最后是你的:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_refresh:
refreshHelper.setMenuItem(item);
default:
return super.onOptionsItemSelected(item);
}
}
现在您可以使用showLoading()和stopLoading()来启动或停止不确定的进度。还要确保menu.xml在R.id.action_refresh中具有ic_refresh.png。
希望它有所帮助!!!