我在我的应用程序中有一个SeekBar,我希望它的行为使得当用户拖动'thumb'时,一个Popup出现在拇指上方(并且遵循拇指拖动),并且弹出窗口显示SeekBar的相应位置(或位置可能表示的任何其他文本)。在Android中创建一个SeekBar位置popup
有什么建议吗?
我在我的应用程序中有一个SeekBar,我希望它的行为使得当用户拖动'thumb'时,一个Popup出现在拇指上方(并且遵循拇指拖动),并且弹出窗口显示SeekBar的相应位置(或位置可能表示的任何其他文本)。在Android中创建一个SeekBar位置popup
有什么建议吗?
我找到这个弹出后面的搜索栏的解决方案是把textview放在相对布局正上方搜索条。然后,在搜索条的onProgressChange,设置TextView的左边缘从而用
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(widht, height)
params.setLeftMargin(margin)
的伟大工程,与一些调整!
欢呼声
拇指是可绘制的,所以一个解决方案可以是将拇指设置为包含拇指和弹出文本的绘图。这意味着您需要为滑块上的每个可能值绘制一个可绘制/图标,并在每次更改值时更新它。环顾四周,我发现这一点,这表明其他人已经走过了这样的方式,当他们需要在他们的可绘制文本:Convert String to Drawable
这一定很晚但是我这样做。
通过获取拇指的范围。和progressChanged设置TextView中的x在搜索条
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
mDistance.setText("" + AppConstants.getDistance() + " miles");
//Get the thumb bound and get its left value
int x = mSeekBar.getThumb().getBounds().left;
//set the left value to textview x value
mDistance.setX(x);
}
看看这个blog
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
// TODO Auto-generated method stub
RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
p.addRule(RelativeLayout.ABOVE, seekBar.getId());
Rect thumbRect = bar.getSeekBarThumb().getBounds();
p.setMargins(
thumbRect.centerX(),0, 0, 0);
textView.setLayoutParams(p);
textView.setText(String.valueOf(progress));
}
});
}
}
你是如何计算保证金的? – JRaymond
有没有setLeftMargin方法 – GOLDEE
你能深入解释一下,它的工作原理如何? – shripal