Как установить прогресс поиска по конкретной позиции, когда он ищет - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь установить прогресс поиска на предварительно заданном значении из массива при вызове метода поиска, но здесь проблема заключается в том, что панель поиска не ищет требуемую позицию из массива и затем сталкивается с ее максимальной позицией.Я действительно застрял, любая помощь будет оценена по достоинству.

Это мой searchbar onseekaged:

fun seekbarseek(){
        customseekbar.setOnSeekChangeListener(object : OnSeekChangeListener {
            override fun onSeeking(seekParams: SeekParams) {
                if (seekParams.progress<=progresslist!!.get(1))
                {
                   Log.i("seekpos:","0")
                    zoomin()
                    customseekbar.onSeekChangeListener = null
                }
                else if (seekParams.progress>progresslist!!.get(1)&&seekParams.progress<=progresslist!!.get(2))
                {
                    Log.i("seekpos:","1")
                    zoomin()
                    customseekbar.onSeekChangeListener = null
                }
                else if (seekParams.progress>progresslist!!.get(2)&&seekParams.progress<=progresslist!!.get(3))
                {
                    Log.i("seekpos:","2")
                    zoomin()
                    customseekbar.onSeekChangeListener = null
                }
                else if (seekParams.progress>progresslist!!.get(3)&&seekParams.progress<=progresslist!!.get(4))
                {
                    Log.i("seekpos:","3")
                    zoomin()
                    customseekbar.onSeekChangeListener = null
                }
            }

            override fun onStartTrackingTouch(seekBar: IndicatorSeekBar) {
            }

            override fun onStopTrackingTouch(seekBar: IndicatorSeekBar) {
                if (seekBar.progress<=progresslist!!.get(1))
                {
                    customseekbar.setProgress(progresslist!!.get(1).toFloat())
                    customseekbar.onSeekChangeListener = null
                }
                else if (seekBar.progress>progresslist!!.get(1)&&seekBar.progress<=progresslist!!.get(2))
                {
                    customseekbar.setProgress(progresslist!!.get(2).toFloat())
                }
                else if (seekBar.progress>progresslist!!.get(2)&&seekBar.progress<=progresslist!!.get(3))
                {
                    customseekbar.setProgress(progresslist!!.get(3).toFloat())
                }
                else if (seekBar.progress>progresslist!!.get(3)&&seekBar.progress<=progresslist!!.get(4))
                {
                    customseekbar.setProgress(progresslist!!.get(4).toFloat())
                }
            }
        })

These is my arraylist content:

progresslist!!.add(0)
            progresslist!!.add(calprogress+calprogress)
            progresslist!!.add(calprogress+calprogress+calprogress)
            progresslist!!.add(calprogress+calprogress+calprogress+calprogress)
            progresslist!!.add(calprogress+calprogress+calprogress+calprogress+calprogress)

Это метод, который я хочу вызвать, когда seekbar ищется:

fun zoomin()
    {
        Log.i("zoominposition", zoomposition.toString())
        if (zoomposition == 5)
        {
            zoomposition = 4
            setfocus()
        }
        zoomposition++
       customseekbar.setProgress(progresslist!!.get(zoomposition).toFloat())
    }

1 Ответ

0 голосов
/ 18 июня 2019

Попробуйте сначала установить максимальное значение для индикатора выполнения

customseekbar.setMax(maxValue);

Тогда ваш setProgress будет работать

...