Vista de desplazamiento horizontal dinámica en Kotlin

Android ScrollView permite que se desplacen múltiples vistas que son lugares dentro del grupo de vista principal. El desplazamiento en la aplicación de Android se puede hacer de dos maneras, ya sea vertical u horizontalmente.

En este artículo, discutiremos cómo crear mediante programación un ScrollView horizontal en Kotlin.

Comencemos creando primero un proyecto en Android Studio. Para hacerlo, siga estas instrucciones:

  • Haga clic en Archivo , luego en Nuevo y luego en Nuevo proyecto y asigne el nombre que desee.
  • Luego, seleccione Compatibilidad con el idioma Kotlin y haga clic en el botón siguiente .
  • Seleccione SDK mínimo, lo que necesite.
  • Seleccione Actividad vacía y luego haga clic en finalizar.

Modificar archivo activity_main.xml

Aquí, usaremos RelativeLayout para obtener la Vista de desplazamiento del archivo Kotlin.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
  
    <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:id="@+id/layout"
            android:layout_centerInParent="true"/>
  
   </RelativeLayout>

Actualice el archivo strings.xml

<resources>
    <string name="app_name">DynamicHorizontal ScrollView</string>
</resources>

Añadir imágenes

Necesitamos agregar algunas imágenes que se pueden usar para fines de desplazamiento. Entonces, tenemos que copiar las imágenes de la ruta de nuestra computadora local a la carpeta app/res/drawable .

Crear ScrollView horizontal en el archivo MainActivity.kt

Abra app/src/main/java/yourPackageName/MainActivity.kt. En este archivo, declaramos una variable horizontalScrollView para crear el widget Horizontal ScrollView como este:

 val horizontalScrollView = HorizontalScrollView(this)
    //setting height and width
    val layoutParams = LinearLayout.LayoutParams(
                        ViewGroup.LayoutParams.MATCH_PARENT, 
                        ViewGroup.LayoutParams.MATCH_PARENT)
    horizontalScrollView.layoutParams = layoutParams

luego, agregue el widget en el diseño usando este

   val linearLayout1 = findViewById(R.id.layout)
       linearLayout1?.addView(horizontalScrollView)
package com.geeksforgeeks.myfirstkotlinapp
  
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.ViewGroup
import android.widget.HorizontalScrollView
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.RelativeLayout
  
class MainActivity : AppCompatActivity() {
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
  
        val horizontalScrollView = HorizontalScrollView(this)
        //setting height and width
        val layoutParams = LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.MATCH_PARENT)
        horizontalScrollView.layoutParams = layoutParams
  
        val linearLayout = LinearLayout(this)
        //setting height and width
        val linearParams = LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.WRAP_CONTENT)
        linearLayout.layoutParams = linearParams
  
        //adding horizontal scroll view to the layout
        horizontalScrollView.addView(linearLayout)
  
        val image1 = ImageView(this)
        //setting height and width
        val params1 = LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.WRAP_CONTENT)
        image1.layoutParams = params1
        //accessing images that we downloaded and copied to
        // drawable folder and setting it to imageview
        image1.setImageResource(R.drawable.img1)
        linearLayout.addView(image1)
  
        val image2 = ImageView(this)
        //setting height and width
        val params2 = LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.WRAP_CONTENT)
        image2.layoutParams = params2
        //accessing images that we downloaded and copied to 
        // drawable folder and setting it to imageview
        image2.setImageResource(R.drawable.img2)
        linearLayout.addView(image2)
  
        val image3 = ImageView(this)
        //setting height and width
        val params3 = LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.WRAP_CONTENT)
        image3.layoutParams = params3
        //accessing images that we downloaded and copied to 
        // drawable folder and setting it to imageview
        image3.setImageResource(R.drawable.img3)
        linearLayout.addView(image3)
  
        val image4 = ImageView(this)
        //setting height and width
        val params4 = LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.WRAP_CONTENT)
        image4.layoutParams = params4
        //accessing images that we downloaded and copied to 
        // drawable folder and setting it to imageview
        image4.setImageResource(R.drawable.img4)
        linearLayout.addView(image4)
  
        val image5 = ImageView(this)
        //setting height and width
        val params5 = LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.WRAP_CONTENT)
        image5.layoutParams = params5
        //accessing images that we downloaded and copied to
        // drawable folder and setting it to imageview
        image5.setImageResource(R.drawable.img5)
        linearLayout.addView(image5)
  
  
        //accessing the relative layout where the scrollview will be active
        val linearLayout1 = findViewById<RelativeLayout>(R.id.layout)
        linearLayout1?.addView(horizontalScrollView)
  
    }
}

Archivo AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.geeksforgeeks.myfirstkotlinapp">
  
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
  
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
  
</manifest>

Ejecutar como emulador:

Aquí está el video de desplazamiento horizontal en la aplicación de Android.

 

Publicación traducida automáticamente

Artículo escrito por Abhishek7 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *