我如何增加图标和应用程序边框之间的空间?

时间:2014-03-26 11:47:48

标签: android

在ActionBarActivity扩展的Activity中,我使用supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);setSupportProgressBarIndeterminateVisibility(true);将迷你进度对话框显示为操作栏项目菜单。

如何将更多内容分隔到屏幕上?

谢谢!

enter image description here

1 个答案:

答案 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。

希望它有所帮助!!!