परिचय
यह उदाहरण दर्शाता है कि एंड्रॉइड में Kotlin का उपयोग करके GridView की स्क्रॉलिंग कार्यक्षमता को कैसे अक्षम किया जाए। यह तब उपयोगी होता है जब आप ग्रिड आइटम को स्थिर रखना चाहते हैं और उपयोगकर्ता को स्क्रॉल करने से रोकना चाहते हैं।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में जाएं, File → New Project चुनें और सभी आवश्यक विवरण भरकर एक नया प्रोजेक्ट बनाएं।
चरण 2: लेआउट फ़ाइल में कोड जोड़ें
res/layout/activity_main.xml में निम्नलिखित XML कोड जोड़ें:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="8dp"
tools:context=".MainActivity">
<GridView
android:id="@+id/gridLayout"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
चरण 3: MainActivity.kt में कोड जोड़ें
src/MainActivity.kt में निम्नलिखित Kotlin कोड जोड़ें:
import android.content.Context
import android.os.Bundle
import android.view.MotionEvent
import android.view.View
import android.view.ViewGroup
import android.widget.*
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
private lateinit var gridView: GridView
private var imageIDs = arrayOf(
R.drawable.ronaldo,
R.drawable.andre,
R.drawable.bernado,
R.drawable.carvalho,
R.drawable.bruno,
R.drawable.patricio,
R.drawable.pepe,
R.drawable.felix,
R.drawable.semedo,
R.drawable.ronaldo
)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = "KotlinApp"
gridView = findViewById(R.id.gridLayout)
gridView.numColumns = 3
gridView.adapter = ImageAdapterGridView(this)
// स्क्रॉलिंग अक्षम करने के लिए OnTouchListener सेट करें
gridView.setOnTouchListener { _, event ->
Toast.makeText(this@MainActivity, "स्क्रॉलिंग अक्षम है", Toast.LENGTH_SHORT).show()
event.action == MotionEvent.ACTION_MOVE
}
}
inner class ImageAdapterGridView internal constructor(c: Context) : BaseAdapter() {
private val context: Context = c
override fun getCount(): Int = imageIDs.size
override fun getItem(position: Int): Any? = null
override fun getItemId(position: Int): Long = 0
override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
val imageView: ImageView
if (convertView == null) {
imageView = ImageView(context)
imageView.layoutParams = AbsListView.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT
)
imageView.scaleType = ImageView.ScaleType.CENTER_CROP
imageView.setPadding(30, 30, 30, 30)
} else {
imageView = convertView as ImageView
}
imageView.setImageResource(imageIDs[position])
return imageView
}
}
}
चरण 4: AndroidManifest.xml कॉन्फ़िगर करें
androidManifest.xml में निम्नलिखित कोड सुनिश्चित करें:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="com.example.q11">
<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>
ऐप चलाएं
अपने एंड्रॉइड डिवाइस को कंप्यूटर से कनेक्ट करें। Android Studio में प्रोजेक्ट की एक्टिविटी फ़ाइल खोलें और टूलबार से Run आइकन पर क्लिक करें। अपना मोबाइल डिवाइस चुनें और देखें कि GridView स्क्रॉल नहीं करता है।