Android progressbar.setprogress(0)时面临的问题
我在viewpager页面0中有一个进度条。 这是progressbar:Android progressbar.setprogress(0)时面临的问题,android,android-progressbar,Android,Android Progressbar,我在viewpager页面0中有一个进度条。 这是progressbar: <ProgressBar android:id="@+id/mytask_today_progressBar" style="?android:attr/progressBarStyleHorizontal" android:layout_width="113dp"
<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" />
<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>
当我像这样交换view pager的页面并返回到同一页面时,设置为0的progressbar被更改。像这样:
<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>
<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>
<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>
如您所见,progressbar设置为1(或者事实上,1-100中的任何其他值)不会更改,只会更改为0
<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>
这是我在这方面使用的绘图工具(这是否造成问题):
<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>
<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>
这更可能取决于您设置进度的位置。理想情况下,您应该将该代码放在所选页面的
onPageSelected
<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>
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) {
}
});
我认为您的最后一行代码总是将文本设置为
0
,而与实际值无关mytask\u week\u progresstxt.setText(0+“”)
。因此,基本上您需要将.setText
更改为what-ever值,而不是将其设置为静态。不,但它适用于1-100之间的值。仅对于0,它会导致问题,但当我设置0以外的值时,为什么它不会导致问题?您可能会将该设置代码设置为初始状态的某个位置,当您的ViewPager调用时,该代码会调用一次,而您的页面滑动时不应调用该代码。