2016-07-18 3 views
0

Я пытаюсь создать неопределенный индикатор выполнения, чтобы обозначить загрузку в моем приложении. Однако, пробовав бесчисленные макеты xml и разные биты кода, я не могу заставить ничего работать. Это мой основной фрагмента XML-файл:Android - индикатор цикла не работает

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:tools="http://schemas.android.com/tools" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      tools:context="com.example.dwinnbrown.xxx.FirstFragment"> 

    <!-- TODO: Update blank fragment layout --> 
     <WebView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/webview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     /> 

    <ProgressBar 
     android:id="@+id/prgrsbar" 
     style="?android:attr/progressBarStyleHorizontal" 
     android:layout_width="150dp" 
     android:layout_height="150dp" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:max="500" 
     android:progress="0" 
     android:indeterminate="true" 
     android:progressDrawable="@drawable/circular" /> 


</FrameLayout> 

И мой circular.xml файл:

<shape 
    android:innerRadiusRatio="3" 
    android:shape="ring" 
    android:thicknessRatio="7.0"> 

    <gradient 
     android:centerColor="#007DD6" 
     android:endColor="#007DD6" 
     android:startColor="#007DD6" 
     android:angle="0" 
     android:type="sweep" 
     android:useLevel="false" ></gradient> 
</shape> 

Однако вывод выглядит так - я что-то отсутствует?

enter image description here

ответ

0

Я вернусь к индикатору выполнения, но есть еще одна вещь, чтобы улучшить первое:

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

Таким образом, легко начать использовать Relativelayout в качестве корневого представления, а затем вы можете легко согласовать Progressbar в середине обзора.

Теперь, к панели прогресса, я сам не сделал вашу работу. Но я бы порекомендовал вам раздеть его до essensitals первых, чтобы увидеть, что это экран отображается, так:

<ProgressBar 
    android:id="@+id/prgrsbar" 
    android:layout_width="150dp" 
    android:layout_centerInParent="true" 
    android:layout_height="150dp"/> 

Это должно показать вам простой ProgressBar, который просто держит на спиннинг в круг. Если это не так, есть проблема в другом месте.

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

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

Edit:

Я смотрел онлайн немного и от того, что я нашел вытяжка должна выглядеть что-то похожее на это (непроверенное, хотя): How to set color to secondary drawable in progress bar

+0

Хорошо спасибо за помощь. Я проверю все это сейчас. – dwinnbrown

+0

Хорошо, что теперь представляет собой горизонтальную скользящую штангу - к сожалению, не круговую. – dwinnbrown

+0

Панель прогресса должна быть круговой, если она не имеет значений max и progress, вы уверены, что их там нет? В любом случае, это начало, это означает, что теперь отображается представление! :) –

0

Android уже есть бар кругового прогресса, построенный в, попробуйте это:

<ProgressBar 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:indeterminate="true" 
    android:id="@+id/prgrsbar" 
    style="?android:attr/progressBarStyleLarge" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

Вы можете использовать progressBarStyleSmall вместо progressBarStyleLarge, если он слишком большой, или настроить его самостоятельно.

Смежные вопросы