我为应用的操作栏创建了自定义布局。一切正常,但我在onCreate()
通过requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
启用的不确定进度显示在我的自定义布局的右侧,并在出现时移动所有内容:
这是我的自定义操作栏布局:
<?xml version="1.0" encoding="utf-8"?>
<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"/>
<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"
/>
<ProgressBar
android:id="@+id/progress_spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?android:attr/progressBarStyleSmall"
android:layout_centerVertical="true"
android:indeterminate="true"
android:layout_toStartOf="@id/search_view" />
</RelativeLayout>
我可以对自定义操作栏布局中的ProgressBar
做些什么,以便requestWindowFeature()
找到并使用它而不是默认值?
答案 0 :(得分:0)
所以我想出了一个解决方案。我没有使用requestWindowFeature()
,而是将进度条放在操作栏布局中,并将setProgressBarIndeterminateVisibility()
的所有实例替换为setVisibility()
:
// Toggles progress spinner visibility when we conduct a search
private void toggleIndeterminateSpinner(int state)
{
// Indeterminate Progress Spinner
ProgressBar progressSpinner = (ProgressBar) getActivity().findViewById(R.id.progress_spinner);
switch(state)
{
case HIDE:
progressSpinner.setVisibility(View.VISIBLE);
break;
case SHOW:
progressSpinner.setVisibility(View.GONE);
break;
}
}