📜  如何使用Kotlin在Android中添加RangeSeekbar?

📅  最后修改于: 2021-05-13 16:41:41             🧑  作者: Mango

在本文中,RangeSeekbar在android的应用程序中实现。 Android Seekbar是一种进度条。我们可以从左向右拖动搜索栏,反之亦然,因此可以更改当前进度。在这里,我们使用RangeSeekbar库在我们的应用程序中添加自定义搜寻栏。该库为我们提供了各种功能,例如步骤,模式,thumbDrawable等,这使其比android提供的seekbar更好。

方法

步骤1:在根build.gradle文件(而不是模块build.gradle文件)中添加支持库。这个库jitpack是一个新颖的软件包存储库。它是为JVM设计的,因此github和bigbucket中存在的任何库都可以直接在应用程序中使用。

XML
allprojects {         
   repositories {         
      maven { url 'https://jitpack.io' }         
  }
}


XML
dependencies {         
         implementation 'com.github.Jay-Goo:RangeSeekBar:v3.0.0'         
}


strings.xml

        Lv1
        Lv2
        Lv3
        Lv4
        Lv5
    


activity_main.xml


  
 
  
    
  


MainActivity.kt
package org.geeksforgeeks.rangeseekbar
  
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import com.jaygoo.widget.OnRangeChangedListener
import com.jaygoo.widget.RangeSeekBar
import kotlinx.android.synthetic.main.activity_main.*
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        //whenever we change progress of seekbar this function 
        //get invoked automatically.
        range_seekbar?.setOnRangeChangedListener(object : 
            OnRangeChangedListener {
            override fun onRangeChanged(
                     rangeSeekBar: RangeSeekBar, leftValue: Float,
                     rightValue: Float, isFromUser: Boolean) {
                Toast.makeText(this@MainActivity,
                    leftValue.toString(),Toast.LENGTH_LONG).show()
            }
  
            override fun onStartTrackingTouch(view: RangeSeekBar?,
                         isLeft: Boolean) {
            }
  
            override fun onStopTrackingTouch(view: RangeSeekBar?, 
                         isLeft: Boolean) {
            }
        })
    }
}


步骤2:build.gradle文件中添加支持库,并在“ dependencies”部分中添加依赖项。通过这种方式,RangeSeekbar将直接在XML中使用。

XML格式

dependencies {         
         implementation 'com.github.Jay-Goo:RangeSeekBar:v3.0.0'         
}

步骤3:在values文件夹中存在的字符串.xml文件中创建一个字符串数组。

字符串.xml


        Lv1
        Lv2
        Lv3
        Lv4
        Lv5
    

步骤4:activity_main.xml文件中添加以下代码。在此文件中,将搜索栏添加到布局中,并根据需要添加重要的标签,如step,thumbDrawable,mode等。

activity_main.xml



  
 
  
    
  

步骤5:MainActivity.kt文件中添加以下代码。在这里, setOnRangeChangedListener与搜索栏一起添加。当用户更改搜索栏并显示其进度变化的百分比时,将调用该方法。

MainActivity.kt

package org.geeksforgeeks.rangeseekbar
  
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import com.jaygoo.widget.OnRangeChangedListener
import com.jaygoo.widget.RangeSeekBar
import kotlinx.android.synthetic.main.activity_main.*
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        //whenever we change progress of seekbar this function 
        //get invoked automatically.
        range_seekbar?.setOnRangeChangedListener(object : 
            OnRangeChangedListener {
            override fun onRangeChanged(
                     rangeSeekBar: RangeSeekBar, leftValue: Float,
                     rightValue: Float, isFromUser: Boolean) {
                Toast.makeText(this@MainActivity,
                    leftValue.toString(),Toast.LENGTH_LONG).show()
            }
  
            override fun onStartTrackingTouch(view: RangeSeekBar?,
                         isLeft: Boolean) {
            }
  
            override fun onStopTrackingTouch(view: RangeSeekBar?, 
                         isLeft: Boolean) {
            }
        })
    }
}

输出:

有关更多信息,请参考官方文档

想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处前往由我们的专家精心策划的指南,以使您立即做好行业准备!