Подтвердить что ты не робот

SetProgressBarIndeterminateVisibility (true) не работает

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

Мой код:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);//Above setContentView, very important
    setContentView(R.layout.activity_main);
    //...other stuff
}

В другом методе, который я не вызываю при создании. (Это метод onClick)

public void plus(View view){
    setProgressBarIndeterminateVisibility(true);//Nothing happens
    //...other stuff
}

Я не понимаю, что случилось, пожалуйста, помогите мне.

ПРИМЕЧАНИЕ. Я никогда не устанавливал значение false

Изменить: Я пробовал вторую половину второй части, но совершенно точно заметил. Даже не часть 3. Поэтому я пробовал часть 4, но я дал мне исключение.

"В этом упражнении уже есть панель действий, предоставляемая декором окна. Не запрашивайте Window.FEATURE_ACTION_BAR и установите для окна WindowActionBar значение false в вашей теме, чтобы вместо этого использовать панель инструментов."

Я удалил запрос Window.FEATURE_ACTION_BAR, но он дал мне то же исключение. Я не думаю, что мне нужно установить windowActionBar в false, но я это сделал, и это все равно дало мне то же исключение.

Любые другие варианты?

4b9b3361

Ответ 1

Во-первых:

Окно, доступное для выполнения. Бары проекта теперь устарели с помощью панели инструментов.

Во-вторых:

вы должны использовать:

setSupportProgressBarIndeterminateVisibility(true);

вместо

setProgressBarIndeterminateVisibility(true);

потому что вы расширяете ActionBarActivity. (потому что вы используете supportRequestWindowFeature вместо requestWindowFeature)

Третье:

Если это сбой, это известный issue. Если ваша библиотека обновляется извините, но теперь она просто не работает:

setSupportProgressBarIndeterminateVisibility() сбой исправлен для будущего выпуска, в том, что это будет не-op.

Четвертое:

Мое решение:

используйте панель инструментов с виджемом progressBar:

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        ProgressBar progressBar = (ProgressBar) findViewById(R.id.progress_spinner);
        progressBar.setVisibility(View.VISIBLE);
    }

Макеты:

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include layout="@layout/toolbar"/>

    <FrameLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</LinearLayout>

и

toolbar.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <ProgressBar
        android:id="@+id/progress_spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end"
        android:indeterminate="true"
        android:visibility="gone" />

</android.support.v7.widget.Toolbar>