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.