10

使用新材料设计滑块com.google.android.material.slider.Slider。由于它最近才发布,因此文档很差。试图从滑块中获得价值,但现在没有运气。换句话说,setOnProgressChanged { }Seekbar 中的滑块相当于什么。

4

4 回答 4

12
  Slider slider = findViewById(R.id.slider);
  slider.addOnSliderTouchListener(touchListener);

然后

private final OnSliderTouchListener touchListener =
      new OnSliderTouchListener() {
        @Override
        public void onStartTrackingTouch(Slider slider) {

        }

        @Override
        public void onStopTrackingTouch(Slider slider) {

        }
      };

更多详情,请查看SliderMainDemoFragment.java

于 2020-06-16T13:27:08.590 回答
11

您可以使用OnChangeListener监听器

slider.addOnChangeListener(new Slider.OnChangeListener() {
    @Override
    public void onValueChange(@NonNull Slider slider, float value, boolean fromUser) {
        //Use the value
    }
});
于 2020-06-16T14:06:47.260 回答
7

要获取值更新,您可以使用Slider.OnChangeListener

val slider = Slider(requireContext())
slider.addOnChangeListener { slider, value, fromUser -> /* `value` is the argument you need */ }
// the same implementation with interface name
// slider.addOnChangeListener(Slider.OnChangeListener { slider, value, fromUser -> })

Material Components 官方存储库中的滑块实现示例。

于 2020-06-16T13:25:41.220 回答
1

我们可以使用addOnChangeListener获取滑块的

参数的类型为 Float。

    slider.addOnChangeListener { slider, value, fromUser ->                            
              Toast.makeText(baseContext, value.toString(), Toast.LENGTH_LONG).show()    
    }
于 2022-02-16T19:03:43.577 回答