4

Я видел несколько человек, пытающихся показать неопределенный индикатор выполнения, и это своего рода противоположная проблема, чем у меня.Показывать ход окна, но не ActionBar Progress (с использованием библиотеки совместимости v7)

Что я хочу, когда приложение начинает работать, пользователь видит неопределенный индикатор выполнения в верхней части Window. Затем уходит, когда работа завершена.

Я использую библиотеку приложений compat v7. Мой Activity распространяется android.support.v7.app.ActionBarActivity.

код у меня в Activity.onCreate() является:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 

    setContentView(R.layout.main); 

    ... 
} 

Затем, когда начинается работа (в фрагменте, а не на основной нити):

((ActionBarActivity) getActivity()).setSupportProgressBarIndeterminateVisibility(true); 

Тогда, когда работа завершает:

((ActionBarActivity) getActivity()).setSupportProgressBarIndeterminateVisibility(false); 

Два любопытных поведения, которые я не могу объяснить. Во-первых, на setSupportProgressBarIndeterminateVisibility(true) Прогресс Window показывает (что я хочу) и показывает круговой индикатор выполнения панели действий.

when searching starts

Во-вторых, на setSupportProgressBarIndeterminateVisibility(false) в Window прогресс шкурами (ура) и вот это ... бар круговой прогресс остается видимым ...

when searching completes

Так что я не» я знаю, почему происходит какой-то прогресс в действии, и я не знаю, как остановить его. Если бы я зналобзора прогресса в панели действий, я мог бы посмотреть это в меню и убедиться, что он остается скрытым, но я не знаю, что id (также кажется неправильным способом для этого).

Любая помощь, объясняющая это поведение, была бы замечательной. Спасибо!!

ответ

1

Для первого выпуска:

Это не очевидно из кода данного, но звонки в setSupportProgressBarIndeterminateVisibility были вызваны из фонового потока. Если я переведу этот код в поток пользовательского интерфейса, все будет работать без сбоев пользовательского интерфейса.

Для второго выпуска:

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