我有一个SeekBar,它使用自定义的可拖动块(drawable)。我想根据另一个控件的状态来显示/隐藏这个可拖动块。
我尝试从资源中加载drawable,然后使用SeekBar.setThumb()方法设置可拖动块(drawable),或者将其设置为null。
虽然设置为null可以隐藏可拖动块,但是我无法再次显示它。
我有一个SeekBar,它使用自定义的可拖动块(drawable)。我想根据另一个控件的状态来显示/隐藏这个可拖动块。
我尝试从资源中加载drawable,然后使用SeekBar.setThumb()方法设置可拖动块(drawable),或者将其设置为null。
虽然设置为null可以隐藏可拖动块,但是我无法再次显示它。
最好的方法是从XML为滑块设置可绘制图像(一直以来都是这样做的),然后当您想要隐藏/显示滑块可绘制图像时,只需操作其alpha值:
// Hide the thumb drawable if the SeekBar is disabled
if (enabled) {
seekBar.getThumb().mutate().setAlpha(255);
} else {
seekBar.getThumb().mutate().setAlpha(0);
}
编辑:
如果将 alpha 设为零后,缩略图显示为白色,请尝试添加
<SeekBar
....
android:splitTrack="false"
/>
通过xml在SeekBar中隐藏拇指
android:thumbTint="@color/transparent"
例如
<SeekBar
android:id="@+id/seekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="false"
android:thumb="@color/gray"
android:thumbTint="@android:color/transparent" />
最简单的方法是在SeekBar视图的XML中添加以下一行代码:
android:thumb="@android:color/transparent"
您可以通过设置任意大的拇指偏移值来隐藏进度条拇指,这将使拇指移出视线。例如:
mySeekBar.setThumbOffset(10000); // moves the thumb out of view (to left)
mySeekBar.setThumbOffset(0); // moves the thumb back to view
通过xml在SeekBar中隐藏您的拇指
android:thumb="@null"
getDrawable(int)
已经被弃用,你可能想要编写类似这样的代码:setThumb(ContextCompat.getDrawable(context, bHide ? R.color.transparent : R.drawable.player_seekbar_handle));
- RestInPeace