ScrollingMovementMethod ব্যবহার করে স্ক্রলযোগ্য TextView
এই উদাহরণটি দেখায় কিভাবে একটি TextView-কে স্ক্রলেেবল করা যায় যাতে বড় টেক্সট পূর্ণরূপে পড়া যায়। এটি ডকুমেন্ট রিডার, টার্মস অ্যান্ড কন্ডিশন, বা বায়োগ্রাফি দেখানোর জন্য উপযুক্ত।
ধাপ ১: প্রজেক্ট তৈরি
ধাপ ২: লেআউট (scrollbars এট্রিবিউট জরুরি)
<?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="wrap_content"
android:layout_height="match_parent"
android:scrollbars="vertical" />
</RelativeLayout>
ধাপ ৩: MainActivity.java
package app.com.sample;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.method.ScrollingMovementMethod;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = findViewById(R.id.textView);
// বড় টেক্সট (মহাত্মা গান্ধী বায়োগ্রাফি)
String para = "Mohandas Karamchand Gandhi... (বড় টেক্সট)";
textView.setText(para);
// কী লাইন: ScrollingMovementMethod সেট করুন
textView.setMovementMethod(new ScrollingMovementMethod());
}
}
XML-এ সরাসরি করা (কোড ছাড়া)
আপনি কেবল XML-এ এই দুটি এট্রিবিউট যোগ করে একই ফলাফল পেতে পারেন:
<TextView
android:scrollbars="vertical"
android:maxLines="android:maxLines="10"
android:ellipsize="none" />
এবং কোডে: textView.setMovementMethod(new ScrollingMovementMethod());
Horizontal Scroll
<TextView
android:scrollbars="horizontal"
android:singleLine="true" />
// কোডে
textView.setHorizontallyScrolling(true);
textView.setMovementMethod(new ScrollingMovementMethod());
NestedScrollView-এ সমস্যা ও সমাধান
যদি TextView NestedScrollView বা ScrollView-এর ভিতরে থাকে, তবে নেস্টেড স্ক্রলিং কনফ্লিক্ট হয়। সমাধান:
// প্যারেন্ট ScrollView-এ android:nestedScrollingEnabled="true" // TextView-এ textView.setNestedScrollingEnabled(true);
আধুনিক বিকল্প: TextView autoSizeText
API 26+ এ android:autoSizeTextType="uniform" ব্যবহার করে টেক্সট আকার অটোমেটিক্যালি অ্যাডজাস্ট করা যায়, স্ক্রল কমাতে।
Rich Text / HTML সাপোর্ট
textView.setText(Html.fromHtml(htmlString, Html.FROM_HTML_MODE_COMPACT)); textView.setMovementMethod(LinkMovementMethod.getInstance()); // লিংক ক্লিকেবল করতে