Android ActionBar 进度条位置

标签 android android-actionbar

我有一个带有 3 个菜单项的 ActionBar。最后一个是刷新按钮。

刷新按钮设置...

setProgressBarIndeterminateVisibility(true);
setProgressBarVisibility(true);

... 为 true,在 ActionBar 上显示旋转进度图标。太棒了!

但问题是它显示在所有其他图标的前面。我希望它位于所有图标的右侧,这样我就可以隐藏刷新按钮,这样当微调器可见时它看起来就像替换了刷新按钮。

我怎样才能做到这一点?

最佳答案

您需要制作自定义 ActionBar 布局并将进度条(设置为不确定模式)放置在您想要的任何位置。然后,不调用 setProgressBarVisibility(true),只需根据是否需要显示微调器调用 ProgressBar.setVisibility()

这是我的应用的自定义 ActionBar 布局的示例:

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:text="@string/app_name"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"/>

<ProgressBar
    android:id="@+id/action_bar_progress_spinner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:indeterminate="true"
    android:layout_toStartOf="@id/search_view"
    android:visibility="gone" />

<SearchView
    android:id="@+id/search_view"
    android:layout_height="match_parent"
    android:layout_width="wrap_content"
    android:title="@string/menu_search"
    android:icon="@drawable/ic_search"
    android:showAsAction="always"
    android:actionViewClass="android.widget.SearchView"
    android:layout_alignParentLeft="false"
    android:queryHint="@string/menu_search_hint"
    android:iconifiedByDefault="false"
    android:layout_alignParentRight="true"/>
</RelativeLayout>

只需调整 ProgressBar 的位置,直到它位于您想要的位置。然后,在您的 Activity 的 onCreate() 中设置布局:

ActionBar actionBar = getActionBar();
actionBar.setCustomView(R.layout.activity_start_screen_actionbar);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);

关于Android ActionBar 进度条位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15506209/

相关文章:

android - setSupportActionBar 和 setActionBar 之间的区别

Android操作栏溢出菜单去除阴影

android - 纬度/经度和米

android - 自定义EditText垂直对齐方式

java - ListView setAdapter() 空指针异常(使用 Inflator)

Android gradle 插件版本 8.1.0 导致 R 导入问题

安卓 Espresso : How to check that Toast message is NOT shown?

Kotlin - 向 ActionBar 添加操作按钮

android - 无法使用 ActionBarSherlock 更改选项卡的背景

Android 操作栏 : show/hide tabs dynamically?