উদাহরণের আগে জানতে হবে View Stub কী। এটি একটি জিরো-সাইজ লেজি ইনফ্লেট ভিউ। এটি রানটাইমে ইনফ্লেট হয়। inflate() মেথড ব্যবহার করে রানটাইমে ইনফ্লেট করে উইন্ডো ম্যানেজার বা ভিউ গ্রুপে অ্যাপেন্ড করে। setVisibility(int) ব্যবহার করে View Stub শো/হাইড করা যায়।
এই উদাহরণটি View Stub ব্যবহারের পদ্ধতি দেখায়।
ধাপ ১: নতুন প্রজেক্ট তৈরি করুন
অ্যান্ড্রয়েড স্টুডিওতে File → New Project এ যান এবং প্রজেক্ট তৈরির জন্য প্রয়োজনীয় বিবরণ পূরণ করুন।
ধাপ ২: activity_main.xml-এ লেআউট যোগ করুন
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:id="@+id/layout"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/show"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="show"/>
<Button
android:id="@+id/hide"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hide"/>
<ViewStub
android:id="@+id/viewStub"
android:layout_width="match_parent"
android:layout="@layout/childlayout"
android:layout_height="300dip">
</ViewStub>
</LinearLayout>
দুটি বাটন: Show এবং Hide। View Stub লেআউট শো/হাইড করবে। View Stub-এ চাইল্ড লেআউট ইনফ্লেট করা হয়েছে:
android:layout="@layout/childlayout"
চাইল্ড লেআউট ডিক্লেয়ার করলেও এটি অটোমেটিক্যালি ইনফ্লেট হয় না। এক্টিভিটি ক্লাসে inflate() মেথড কল করতে হয়।
ধাপ ৩: MainActivity.java-এ কোড যোগ করুন
package com.example.andy.myapplication;
import android.annotation.TargetApi;
import android.os.Build;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewStub;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
@TargetApi(Build.VERSION_CODES.O)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ViewStub viewStub = findViewById(R.id.viewStub);
viewStub.inflate();
Button show = findViewById(R.id.show);
show.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
viewStub.setVisibility(View.VISIBLE);
}
});
Button hide = findViewById(R.id.hide);
hide.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
viewStub.setVisibility(View.GONE);
}
});
}
}
View Stub ইনফ্লেট করা হয়েছে:
final ViewStub viewStub = findViewById(R.id.viewStub);
viewStub.inflate();
Show বাটনে ক্লিক করলে View Stub ভিজিবল হবে। Hide বাটনে ক্লিক করলে View Stub হাইড হবে।
ধাপ ৪: Manifest.xml পরিবর্তন করার প্রয়োজন নেই
আউটপুট
প্রাথমিক স্ক্রিন:

Hide বাটনে ক্লিক করলে গায়েব হয়ে যাবে:

Show বাটনে ক্লিক করলে ImageView দেখাবে:
