Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ActionBar Progressbar位置_Android_Android Actionbar - Fatal编程技术网

Android ActionBar Progressbar位置

Android ActionBar Progressbar位置,android,android-actionbar,Android,Android Actionbar,我有一个带有3个菜单项的操作栏。最后一个是刷新按钮 刷新按钮设置 setProgressBarIndeterminateVisibility(true); setProgressBarVisibility(true); 。。。设置为true,这将在操作栏上显示旋转进度图标。太好了 但问题是它会在所有其他图标前显示。我希望它位于所有图标的右侧,这样我就可以隐藏“刷新”按钮,这样当微调器可见时,它看起来会替换“刷新”按钮 如何实现这一点?您需要制作一个自定义操作栏布局,并将进度栏(设置为不确定模式

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

刷新按钮设置

setProgressBarIndeterminateVisibility(true);
setProgressBarVisibility(true);
。。。设置为true,这将在操作栏上显示旋转进度图标。太好了

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


如何实现这一点?

您需要制作一个自定义操作栏布局,并将进度栏(设置为不确定模式)放置在您想要的任何位置。然后,不调用
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>

如何获得对进度条的引用?我尝试过findviewbyid,但没有用。@Mafro34我在一个片段中这样做是为了获得对ProgressBar的引用:
ProgressBar progressSpinner=(ProgressBar)getActivity().findviewbyid(R.id.action\u bar\u progress\u spinner)。如果您试图从活动中找到它,我想您可以省略
getActivity()
。这对我不起作用,可能是因为我使用的是compat libs。我不得不将actionbar布局膨胀成一个视图组来访问成员。
ActionBar actionBar = getActionBar();
actionBar.setCustomView(R.layout.activity_start_screen_actionbar);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);