0

我正在创建一个带有 2 个拇指的自定义搜索栏,搜索栏范围是 0-10000000,我的问题是我想将该搜索栏分成 2 个相等的部分,第一部分范围是 0-1000000,默认步骤10000,第二部分范围为 1000001-10000000,默认步长为 100000。

4

1 回答 1

1

GitHub上有一个库,您可以使用它来解决您的问题。这里是库的链接

将依赖项添加到您的 build.gradle:

dependencies {
    compile 'com.crystal:crystalrangeseekbar:1.1.3'
}

回答您的问题:-

  1. 这是一个双拇指范围搜索栏。

  2. 您可以使用属性设置搜索栏的最小最大范围

    app:min_value="0" //minimum value
    app:max_value="150" // maximum value
    
  3. 您可以使用以下属性设置步长

    app:steps="5"// add required step size here
    

您的搜索栏 XML 代码将如下所示:-

<com.crystal.crystalrangeseekbar.widgets.BubbleThumbSeekbar
    android:id="@+id/rangeSeekbar3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:corner_radius="10"
    app:min_value="0"
    app:max_value="100"
    app:steps="5"
    app:bar_color="#F7BB88"
    app:bar_highlight_color="#E07416"
    app:left_thumb_image="@drawable/thumb"
    app:left_thumb_image_pressed="@drawable/thumb_pressed"
    app:data_type="_integer"/>

在java类中,你可以setOnSeekbarChangeListener()像这样实现:-

final CrystalSeekbar seekbar = new CrystalSeekbar(getActivity());

// get min and max text view
final TextView tvMin = (TextView) rootView.findViewById(R.id.textMin5);
final TextView tvMax = (TextView) rootView.findViewById(R.id.textMax5);

// set listener
seekbar.setOnSeekbarChangeListener(new OnSeekbarChangeListener() {
    @Override
    public void valueChanged(Number minValue) {
        tvMin.setText(String.valueOf(minValue));
    }
});

希望这可能会有所帮助!谢谢。

于 2018-04-23T13:03:09.453 回答