📜  Kotlin中的动态SeekBar

📅  最后修改于: 2021-05-10 15:51:11             🧑  作者: Mango

Android seekBar是progressBar的修改版本,具有可拖动的拇指,用户可以在其中来回拖动拇指以设置当前进度值。我们可以在我们的android设备中使用seekbar,例如亮度控制,音量控制等。

它是重要的用户界面元素之一,它提供了在定义的范围内(例如1到100)选择整数值的选项。

通过在SeekBar中拖动拇指,我们可以前后滑动以在我们分别使用android:min和android:max属性定义的最小整数值和最大整数值之间选择一个值。

首先,我们按照以下步骤创建一个新项目:

  1. 单击文件,然后单击新建=>新建项目
  2. 之后,包括Kotlin支持,然后单击下一步。
  3. 根据方便选择最小的SDK,然后单击下一步
  4. 然后选择清空活动=>下一个=>完成

在这里,我们以编程方式在Kotlin文件中创建SeekBar。

使用activity_main.xml文件

首先,使用LinearLayout并设置其属性,例如id,layout_width,context等。



  

在MainActivity.kt文件中创建SeekBar

在这里,我们需要声明寻求创建像这样的SeekBar:

val seek = SeekBar(this)

然后,我们创建另一个变量lParams并为其设置属性。我们将为LinearLayout创建另一个变量lLayout,并使用id容器从activity_main.xml文件中调用。

val lLayout = findViewById(R.id.container)
        // Adding SeekBar to LinearLayout
        lLayout?.addView(seek)

并使用将名称为seek的SeekBar添加到linearLayout中

lLayout?.addView(seek)
package com.geeksforgeeks.myfirstkotlinapp
  
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.SeekBar
import android.widget.Toast
  
class MainActivity : AppCompatActivity() {
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
       // defining SeekBar
        val seek = SeekBar(this)
        val lParams = LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.WRAP_CONTENT)
        lParams.setMargins(50, 50, 50, 50)
        seek.layoutParams = lParams
  
        val lLayout = findViewById(R.id.container)
        // Adding SeekBar to LinearLayout
        lLayout?.addView(seek)
  
        seek.setOnSeekBarChangeListener(
            object : SeekBar.OnSeekBarChangeListener {
            override fun onProgressChanged(
                seekBar: SeekBar, progress: Int, fromUser: Boolean) {
                // write custom code when progress is changed
            }
  
            override fun onStartTrackingTouch(seekBar: SeekBar) {
                // write custom code when touch is started.
            }
  
            override fun onStopTrackingTouch(seekBar: SeekBar) {
                // write custom code when touch is stopped
                Toast.makeText(this@MainActivity,
                    "SeekBar Progress is: " + seekBar.progress + "%",
                    Toast.LENGTH_SHORT).show()
            }
        })
    }
}

AndroidManifest.xml文件


  

    
        
            
  
            
        
    

  

作为仿真器运行:

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