Пользовательская панель заголовка с прогрессом в Android

Мне было интересно, если есть какой-либо способ включить пользовательский заголовок с моим собственным drawable – а затем впоследствии поместить индикатор выполнения в макет заголовка так, чтобы он действовал как встроенный индикатор прогресса Android.

В моем коде – я хочу иметь возможность вызвать setProgressBarIndeterminateVisibility(true) и отобразить индикатор выполнения в моей настраиваемой строке заголовка.

Это возможно?

Я настроил тему приложения так, чтобы он использовал пользовательский заголовок, но я не знаю, как и где поставить индикатор выполнения в этом макете.

Заранее спасибо.

EDIT: Сейчас я использую свою собственную тему, которая выглядит примерно так:

 <style parent="android:Theme.Light.NoTitleBar" name="BaseTheme"> <item name="android:windowBackground">@drawable/splash_bg</item> <item name="android:windowTitleStyle">@style/TitleBackground</item> </style> 

С названием фона стиль как:

 <style name="TitleBackground" parent="android:WindowTitleBackground"> <item name="android:background">@drawable/title_bar</item> </style> 

Чтобы дать всем лучшую идею – что-то вроде этого. Alt text

Solutions Collecting From Web of "Пользовательская панель заголовка с прогрессом в Android"

Добавьте этот код в onCreate перед любым другим кодом:

 requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); requestWindowFeature(Window.FEATURE_PROGRESS); setProgress(xx); // Then use this to update the progress to xx amount 

Включение / выключение

 setProgressBarIndeterminateVisibility(false); //true to turn on. 

Я использовал это в учетной записи, моя проблема в том, что я запускаю большую часть асинхронного входа, поэтому у меня проблемы с обновлением пользовательского интерфейса. Но я получаю анимацию кругового прогресса для отображения.

У меня есть работа над TabActivity, которая обновляется из асинхронного вызова в рамках Activity Intent, запущенного TabActivity. Мне пришлось поместить строки «requestWind ….» как в TabActivity, так и в вызываемую активность. Также я обнаружил, что использование setProgress не очень много, но анимация spinner «крутилась» все время, поэтому я счастлив.

Вот отличный пример того, как реализовать пользовательскую строку заголовка с индикатором прогресса:

http://downloadandroid.info/2010/08/creating-a-custom-titlebar/

Мое решение состоит в том, чтобы иметь класс ActivityHelper, который расширяет Activity и включает этот метод, а также один, чтобы включить или выключить индикатор выполнения, а затем расширить этот класс из каждой моей деятельности.

Я считаю, что единственный способ сделать это – использовать свою собственную панель заголовков. Вы можете переопределить код Android с момента его открытия, но это может быть плохой идеей. Лучше всего сделать макет заголовка и просто <include /> его во всех других макетах и, возможно, иметь вспомогательный класс, чтобы показать и скрыть индикатор выполнения.

В новых версиях техника requestWindowFeature не будет работать. Лучшим вариантом было бы использовать v7.widget.toolbar, который предоставил Google. Следующая ссылка дает подробные сведения о том, как ее использовать.

Настройка панели действий

http://developer.android.com/training/appbar/setting-up.html