androidandroid-studiokotlinseekbarandroid-seekbar

Android Seekbar - put all seekbar at 0 when you increase a seekbar


I have created an application with 3 search bars in an activity page. I want to set all search bars to 0 when I move a search bar, as shown in the image. screenshot apk

I tried to do it as a group of togglebutton but it doesn't work.

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_options_page)

    image_lightr.setOnClickListener {
        finish()
    }
    val groupSeekBar = arrayOf(seekBar_global, seekBar_left, seekBar_right)
    val groupToggleButton = arrayOf(heart_toggle, dimming_toggle, chenillard_toggle)
    for (toggle in groupToggleButton){
        toggle.setOnCheckedChangeListener { v, isChecked ->
            if (isChecked)
                groupToggleButton.forEach { if (it !=toggle) it.isChecked = false }
        }
    }

    for (seekbar in groupSeekBar){
        seekbar.setOnSeekBarChangeListener{v, isChanged ->
            if(isChanged){
                groupSeekBar.forEach { if (it != seekbar) it.progress = false}
            }

        }
    }
    window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_FULLSCREEN
    actionBar?.hide()
    supportActionBar?.hide()

}

Solution

  • You can use this code:

            seekBar1.setOnSeekBarChangeListener(object: SeekBar.OnSeekBarChangeListener{
            override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
                seekBar2.progress = 0
                seekBar3.progress = 0
            }
    
            override fun onStartTrackingTouch(p0: SeekBar?) {
                // Do nothing
            }
    
            override fun onStopTrackingTouch(p0: SeekBar?) {
                // Do nothing
            }
    
        })
    
        seekBar2.setOnSeekBarChangeListener(object: SeekBar.OnSeekBarChangeListener{
            override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
                seekBar1.progress = 0
                seekBar3.progress = 0
            }
    
            override fun onStartTrackingTouch(p0: SeekBar?) {
                // Do nothing
            }
    
            override fun onStopTrackingTouch(p0: SeekBar?) {
                // Do nothing
            }
    
        })
    
        seekBar3.setOnSeekBarChangeListener(object: SeekBar.OnSeekBarChangeListener{
            override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
                seekBar1.progress = 0
                seekBar2.progress = 0
            }
    
            override fun onStartTrackingTouch(p0: SeekBar?) {
                // Do nothing
            }
    
            override fun onStopTrackingTouch(p0: SeekBar?) {
                // Do nothing
            }
    
        })
    

    This will be the result:

    Result