ScrollView স্ক্রোল পজিশন নিরীক্ষণ করার উদাহরণ
এই উদাহরণটি দেখায় কিভাবে `ViewTreeObserver.OnScrollChangedListener` ব্যবহার করে ScrollView-এর শীর্ষ ও তলে পৌঁছানোর ইভেন্ট ধরা যায়।
ধাপ ১: নতুন প্রজেক্ট তৈরি করুন
Android Studio-তে File → New Project এ যান এবং প্রয়োজনীয় বিবরণ পূরণ করে একটি নতুন প্রজেক্ট তৈরি করুন।
ধাপ ২: লেআউট XML-এ ScrollView ও WebView যোগ করুন
res/layout/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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent">
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</WebView>
</ScrollView>
</RelativeLayout>
ধাপ ৩: MainActivity.java-এ স্ক্রোল লিস্টেনার লজিক লিখুন
src/MainActivity.java ফাইলে নিচের কোডটি যোগ করুন:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewTreeObserver;
import android.webkit.WebView;
import android.widget.ScrollView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements View.OnTouchListener,
ViewTreeObserver.OnScrollChangedListener {
ScrollView scrollView;
WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
scrollView = findViewById(R.id.scrollView);
webView = findViewById(R.id.webView);
scrollView.setOnTouchListener(this);
scrollView.getViewTreeObserver().addOnScrollChangedListener(this);
// লম্বা HTML কন্টেন্ট লোড করুন strings.xml থেকে
webView.loadData(getResources().getString(R.string.sample_data), "text/html", null);
}
public void onScrollChanged() {
View view = scrollView.getChildAt(scrollView.getChildCount() - 1);
int topDetector = scrollView.getScrollY();
int bottomDetector = view.getBottom() - (scrollView.getHeight() + scrollView.getScrollY());
if (bottomDetector == 0) {
Toast.makeText(getBaseContext(), "ScrollView-এর নিচে পৌঁছেছে", Toast.LENGTH_SHORT).show();
}
if (topDetector <= 0) {
Toast.makeText(getBaseContext(), "ScrollView-এর শীর্ষে পৌঁছেছে", Toast.LENGTH_SHORT).show();
}
}
@Override
public boolean onTouch(View v, MotionEvent event) {
return false;
}
}
ধাপ ৪: strings.xml-এ লম্বা HTML কন্টেন্ট যোগ করুন
res/values/strings.xml ফাইলে নিচের কোডটি যোগ করুন:
<resources>
<string name="app_name">Sample</string>
<string name="sample_data"><![CDATA[
<html>
<style>
p.small { line-height: 1.5; font-size: 12px; }
</style>
<body><p align="justify" class="small">
চুপা চাপস ক্যারট কেক পেষ্ট্রি কাপকেক কারামেলস شوগার প্লাম চকলেট কাপকেক টুটি রোল।
কাপকেক চকলেট ডোনাট কারামেলস সেসেম স্ন্যাপস ব্রাউনি কেক হালভা।
সেসেম স্ন্যাপস সেসেম স্ন্যাপস গামিজ ক্যান্ডি ক্যারট কেক।
ফ্রুটকেক বনবন লিকোরিস টপিং বিস্কিট ক্যান্ডি কেন ফ্রুটকেক মার্জিপান কেক।
টার্ট টুটি রোল টার্ট গামি বেয়ার অ্যাপেল পাই ডানিশ পাউডার পেষ্ট্রি গামিজ।
টিরামিসু সেসেম স্ন্যাপস আইসিং পuding। মার্জিপান সুইট রোল কুকি মার্শম্যালো।
... (আরও লম্বা কন্টেন্ট যোগ করুন যাতে স্ক্রোল হয়)
</p></body></html>
]]></string>
</resources>
ধাপ ৫: AndroidManifest.xml কনফিগার করুন
androidManifest.xml ফাইলে নিচের কোডটি নিশ্চিত করুন:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="app.com.sample">
<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 ডিভাইস কম্পিউটারের সাথে সংযুক্ত করুন। Android Studio-তে প্রজেক্টের activity ফাইল খুলে টুলবারের Run আইকনে ক্লিক করুন। আপনার মোবাইল ডিভাইস সিলেক্ট করুন এবং স্ক্রোল করলে শীর্ষ ও তলে পৌঁছানোর টোস্ট দেখাবে।
