57

这个问题的变体可以在整个互联网上找到,但没有答案。

我想要一个带有两个拇指范围选择的搜索栏。我愿意自己编程,但我缺乏使用 Android 的经验。有人可以给我一些关于从哪里开始的指示。我的意思是,我知道我将不得不扩展一些东西(可能是ProgressBar),但是我应该如何去做呢?我真的必须重新创建标准搜索栏的所有功能,还是有更简单的方法?

当然也欢迎完整的解决方案;)

4

5 回答 5

110

我也在找这个,没用。所以我做了一个新的小部件,随意使用它:https ://github.com/anothem/android-range-seek-bar

RangeSeekBar 截图

于 2011-07-21T09:45:46.937 回答
27

“我也在找这个,没用。所以我做了一个新的小部件,随意使用它:https ://code.google.com/p/range-seek-bar/ ”

这个斯蒂芬链接的例子很好用!但是,用户必须按下任何拇指才能获得响应。我希望如果用户按下该栏,最近的拇指会移动到该位置并像往常一样工作。

我在示例代码中实现了这一点,如下所示:

private final Thumb getClosestThumb(float touchX)

{
    double xValue = screenToNormalized(touchX);        
    return (Math.abs(xValue - normalizedMinValue) < Math.abs(xValue - normalizedMaxValue)) ? Thumb.MIN : Thumb.MAX;
}

而在“ public boolean onTouchEvent(MotionEvent event)”中,

if(pressedThumb == null),
   pressedThumb = getClosestThumb(mDownMotionX);
于 2013-08-05T09:33:19.673 回答
3

带有左右图标的窗口搜索栏。
可预设的最小窗口大小和自动反交叉。

窗口搜索栏的屏幕截图

位于https://bitbucket.org/nimbusgb/windowed-seek-bar的 Mercurial 存储库

于 2011-07-27T08:33:14.990 回答
2

我使用了 anthem/android-range-seek-bar 库

https://github.com/anothem/android-range-seek-bar

在xml中

<org.florescu.android.rangeseekbar.RangeSeekBar
            android:id="@+id/pricebar_with_label"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            rsb:absoluteMinValue="20"
            rsb:absoluteMaxValue="150"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            />

在此处输入图像描述

于 2016-10-13T06:35:43.937 回答
2

如果您正在使用任何材料组件,例如:Snackbar, BottomNavigationView等,您不必使用另一个 3rd 方库。

材质库还附带RangeSlider,可用于选择一系列值。

材料库 -实现 'com.google.android.material:material:latestVersion'

于 2020-09-19T04:56:46.697 回答