ওভারভিউ
এই উদাহরণটি দেখাবে কিভাবে TextView-এ ScrollingMovementMethod ব্যবহার করে লম্বা টেক্সট স্ক্রল করার ক্ষমতা যোগ করা যায়।
প্রয়োজনীয় ধাপসমূহ
ধাপ ১: নতুন প্রজেক্ট তৈরি
ধাপ ২: activity_main.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:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="5dp"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
android:textColor="@android:color/background_dark"
android:textSize="18sp"
android:padding="16dp"
android:lineSpacingMultiplier="1.2" />
</RelativeLayout>
ধাপ ৩: MainActivity.kt
import android.os.Bundle
import android.text.method.ScrollingMovementMethod
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = "Scrollable TextView Demo"
val textView = findViewById<TextView>(R.id.textView)
val longText = """
Your time is limited, so don't waste it living someone else's life.
Don't be trapped by dogma – which is living with the results of other people's thinking.
If life were predictable it would cease to be life, and be without flavor.
The big lesson in life, baby, is never be scared of anyone or anything.
""" + "\n\n".repeat(10) // খুব লম্বা করার জন্য
textView.text = longText.trimIndent()
// স্ক্রলিং সক্ষম করার কী লাইন
textView.movementMethod = ScrollingMovementMethod()
}
}
ধাপ ৪: AndroidManifest.xml
স্ট্যান্ডার্ড কনফিগারেশন।
XML-এ সরাসরি সেট করা (বিকল্প)
কোডে না লিখে XML-এই করা যায়:
<TextView
...
android:scrollbars="vertical"
android:scrollbarStyle="insideInset"
android:scrollbarThumbVertical="@drawable/custom_scrollbar"
android:overScrollMode="always" />
তবে movementMethod XML-এ সেট করা যায় না, সেটা Java/Kotlin-এই করতে হয়।
সাধারণ সমস্যা এবং সমাধান
| সমস্যা | সমাধান |
|---|---|
| স্ক্রল কাজ করছে না | layout_height="wrap_content" নয়, match_parent বা ফিক্সড হাইট দিন |
| হরিজন্টাল স্ক্রল চাই | android:scrollbars="horizontal" + android:singleLine="true" (ডিপ্রিকেটেড) বা android:maxLines="1" |
| স্ক্রolbar দেখাচ্ছে না | android:scrollbarFadeDuration="0" বা android:fadeScrollbars="false" |
| RecyclerView-এর ভেতরে | RecyclerView.ItemDecoration বা NestedScrollView ব্যবহার করুন |
আধুনিক বিকল্প: Jetpack Compose
@Composable
fun ScrollableText(text: String) {
Column(
modifier = Modifier
.fillMaxWidth()
.height(300.dp)
.verticalScroll(rememberScrollState())
.padding(16.dp)
) {
Text(
text = text,
fontSize = 18.sp,
lineHeight = 24.sp,
color = Color.Black
)
}
}