RecyclerView es un grupo de vista que se utiliza para mostrar datos de arrays y bases de datos. RecyclerView básicamente es una lista de elementos de los datos. RecyclerView a menudo se conoce como sucesor de GridView y ListView. Puede encontrar más información sobre RecyclerView en RecyclerView en Android con Example . RecyclerView permite a los usuarios desplazarse hacia arriba y hacia abajo, hacia la izquierda y hacia la derecha al configurar la orientación adecuada a través de los atributos. La mayoría de las aplicaciones que usamos hoy en día utilizan de forma destacada RecyclerView para mostrar o presentar los datos.
A través de este artículo, queremos mostrarle cómo puede desactivar la capacidad de desplazamiento de RecyclerView en Android.
Implementación paso a paso
Paso 1: crea un nuevo proyecto en Android Studio
Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Demostramos la aplicación en Kotlin , así que asegúrese de seleccionar Kotlin como idioma principal al crear un nuevo proyecto.
Paso 2: trabajar con el archivo activity_main.xml
Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo activity_main.xml . Cree este RecyclerView simple en el diseño.
XML
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recycler_view_1" android:layout_width="match_parent" android:layout_height="match_parent"/> </androidx.constraintlayout.widget.ConstraintLayout>
Paso 3: cree una tarjeta para RecyclerView (card.xml)
Necesitamos crear un diseño para mostrar nuestros datos. En nuestro caso, tenemos una lista de ciudades. Entonces, cada una de esas tarjetas mostrará el nombre de la ciudad en TextView.
XML
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/place_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:layout_marginVertical="30sp" android:textSize="70sp"/> </RelativeLayout>
Paso 4: cree un adaptador para RecyclerView (MyRecyclerViewAdapter.kt)
Tenemos que crear un adaptador para pasar datos (array de nombres de ciudades) a RecyclerView.
Kotlin
import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.TextView import androidx.recyclerview.widget.RecyclerView private val myItemList = arrayListOf("Delhi", "Mumbai", "Hyderabad", "Bangalore", "Chennai", "Kolkata") class MyRecyclerViewAdapter: RecyclerView.Adapter<MyRecyclerViewAdapter.ViewHolder>() { inner class ViewHolder(v: View): RecyclerView.ViewHolder(v), View.OnClickListener{ val tvPlaceName: TextView = v.findViewById(R.id.place_name) override fun onClick(v: View?) { TODO() } } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyRecyclerViewAdapter.ViewHolder { return ViewHolder(LayoutInflater.from(parent.context) .inflate(R.layout.card, parent, false)) } override fun onBindViewHolder(holder: MyRecyclerViewAdapter.ViewHolder, position: Int) { holder.tvPlaceName.text = myItemList[position] } override fun getItemCount(): Int { return myItemList.size } }
Paso 5: Vincule RecyclerView y Adapter en el código principal (MainActivity.kt)
Consulte los comentarios dentro del código.
Kotlin
import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // Declaring the recycler view from the layout file val myRecyclerView = findViewById<RecyclerView>(R.id.recycler_view_1) // Declaring a variable for // Initializing Linear Layout Manager val myLinearLayoutManager = LinearLayoutManager(this) // Setting the layout manager of the // recycler view with the Initialized variable myRecyclerView.layoutManager = myLinearLayoutManager // Setting the adapter of the recycler view // with the adapter we created myRecyclerView.adapter = MyRecyclerViewAdapter() } }
Salida: Ejecutar la aplicación
Puede ver que podemos desplazarnos.
Paso 6: edite el administrador de diseño para deshabilitar el desplazamiento de RecyclerView
Kotlin
import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val myRecyclerView = findViewById<RecyclerView>(R.id.recycler_view_1) // Calling the override functions from // the Linear Layout Manager inner class val myLinearLayoutManager = object : LinearLayoutManager(this) { override fun canScrollVertically(): Boolean { return false } } myRecyclerView.layoutManager = myLinearLayoutManager myRecyclerView.adapter = MyRecyclerViewAdapter() } }
Salida: ahora ejecute la aplicación
Ahora, puede ver que no podemos desplazarnos.
Publicación traducida automáticamente
Artículo escrito por aashaypawar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA