progressbar.setprogress(0)时面临的问题

时间:2017-04-24 04:59:03

标签: android android-progressbar

我在viewpager页面0中有一个进度条。 这是进度条:

 <ProgressBar
                        android:id="@+id/mytask_today_progressBar"
                        style="?android:attr/progressBarStyleHorizontal"
                        android:layout_width="113dp"
                        android:layout_height="113dp"
                        android:indeterminate="false"
                        android:max="100"
                        android:progress="0"
                        android:progressDrawable="@drawable/custom_progress_small"
                        android:secondaryProgress="0" />

现在加载该页面时,我将进度条设置为0,我得到如下所示的完美屏幕:

enter image description here

这是我使用的代码:

mainActivity.sout("per_mytask_today : "+per_mytask_today);
    mytask_today_progressBar.setProgress(1);
    mainActivity.sout("mytask_today_progressBar.getprogress() : "+mytask_today_progressBar.getProgress());

    mytask_week_progressBar.setProgress(0);

    mytask_today_progresstxt.setText(1+"");
    mytask_week_progresstxt.setText(0+"");

当我像这样交换视图寻呼机的页面并返回到同一页面时,进度条设置为0被更改。像这样:

enter image description here

enter image description here

如您所见,进度条设置为1(或事实上,1-100中的任何其他值)不会更改,只会更改为0。

这是我用过的drawable(这是一个问题):

<?xml version="1.0" encoding="utf-8"?>

                                                                   

    <item>
        <!-- Our second ring -->
        <shape android:shape="ring"
            android:useLevel="true"
            android:innerRadius="40dp"
            android:thicknessRatio="8">
            <solid android:color="@color/colorPrimaryDark"> </solid>
        </shape>
    </item>
</layer-list>

1 个答案:

答案 0 :(得分:0)

更可能取决于您设置进度的位置。理想情况下,您应该将该代码放在onPageSelected

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {

       //Set your progress here 

        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });