android中的滑动seekBar将在事件结束前被禁用,而不是在进度发生变化时点击seekBar
我正在我的应用程序中实现seekBar,我想让它基于滑动而不是基于点击。但是,一旦用户完成滑动,搜索杆必须等待事件完成,而不是更改进度,并且根据事件的响应,搜索杆中的进度将相应地更改为滑动值android中的滑动seekBar将在事件结束前被禁用,而不是在进度发生变化时点击seekBar,android,android-seekbar,Android,Android Seekbar,我正在我的应用程序中实现seekBar,我想让它基于滑动而不是基于点击。但是,一旦用户完成滑动,搜索杆必须等待事件完成,而不是更改进度,并且根据事件的响应,搜索杆中的进度将相应地更改为滑动值 The flow will be like:- slide the seekBar--on sliding finished wait for an event to be finished--once the event finished, make the corresponding progress
The flow will be like:- slide the seekBar--on sliding finished wait for an event to be finished--once the event finished, make the corresponding progress change based on the sliding.
Below I am posting my code.
The custom seekBar class:
public class Slider extends SeekBar {
private Drawable mThumb;
public Slider(Context context) {
super(context);
}
public Slider(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public void setThumb(Drawable thumb) {
super.setThumb(thumb);
mThumb = thumb;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (event.getX() >= mThumb.getBounds().left
&& event.getX() <= mThumb.getBounds().right
&& event.getY() <= mThumb.getBounds().bottom
&& event.getY() >= mThumb.getBounds().top) {
super.onTouchEvent(event);
} else {
return false;
}
} else if (event.getAction() == MotionEvent.ACTION_UP) {
return false;
} else {
super.onTouchEvent(event);
}
return true;
}}
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Fragment where the seekBar is implemented:
viewHolder.dimming.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
int originalProgress;
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
originalProgress = seekBar.getProgress();
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if(viewHolder.getAdapterPosition()!=RecyclerView.NO_POSITION)
{
if(seekBar.isShown() && fromUser)
{
progress= (progress/10)*10;
//ProgressUtil.showProgressDialog(progressDialog);
Log.d("Seek", String.valueOf(progress));
viewHolder.dimming.setEnabled(false);
handleDCURequest.slc_dimming((Context)myContext,slcIDVal,progress, originalProgress,dcuIDVal,viewHolder.dimming);
//adapter.getRef(viewHolder.getAdapterPosition()).child("Percentage").setValue(progress);
//viewHolder.showProgress.setText(progress+"%");
}
}
}
});
I tried my best,but failed. Please do help. Thanks in advance.
流程如下:-滑动seekBar--滑动完成时等待事件完成--一旦事件完成,根据滑动进行相应的进度更改。
下面是我的代码。
自定义seekBar类:
公共类滑块扩展SeekBar{
私人可提取mThumb;
公共滑块(上下文){
超级(上下文);
}
公共滑块(上下文、属性集属性){
超级(上下文,attrs);
}
@凌驾
公共空间设置拇指(可拉伸拇指){
super.setThumb(拇指);
mThumb=拇指;
}
@凌驾
公共布尔onTouchEvent(运动事件){
if(event.getAction()==MotionEvent.ACTION\u向下){
如果(event.getX()>=mThumb.getBounds().left
&&event.getX()请发布您迄今为止尝试过的内容。@nipun.birla:请查找上面编辑过的问题。请发布您迄今为止尝试过的内容。@nipun.birla:请查找上面编辑过的问题。