ডিফল্টরূপে, কাস্টম ট্যাবগুলি একটি পূর্ণ-উইন্ডো কার্যকলাপ হিসাবে চালু হয়। Chrome 107 থেকে শুরু করে, আপনি পোর্ট্রেট মোডে একটি ভিন্ন লঞ্চ উচ্চতা নির্দিষ্ট করতে আংশিক কাস্টম ট্যাব ব্যবহার করতে পারেন যাতে ব্যবহারকারীরা ওয়েব সামগ্রী দেখার সময় আপনার অ্যাপের সাথে ইন্টারঅ্যাক্ট করে মাল্টিটাস্ক করতে পারে। ব্যবহারকারীরা টুলবার হ্যান্ডেলটি উপরে টেনে এনে কাস্টম ট্যাবটিকে পূর্ণ-স্ক্রীনে প্রসারিত করতে পারে এবং হ্যান্ডেলটি নীচে টেনে প্রাথমিক লঞ্চের উচ্চতা পুনরুদ্ধার করতে পারে।
ল্যান্ডস্কেপ মোডে বড় স্ক্রীন বা ডিভাইসগুলির জন্য, Chrome 120 থেকে শুরু করে, আপনি নির্দিষ্ট করতে পারেন, একটি সাইড শীটে একটি আংশিক কাস্টম ট্যাব দেখানোর জন্য সর্বাধিক লঞ্চ প্রস্থ। একটি বিরতি পয়েন্ট সেট করে, আপনি কখন নীচে বা পাশের শীটে একটি আংশিক কাস্টম ট্যাব চালু করবেন তা নির্ধারণ করতে পারেন৷
পূর্বশর্ত
আংশিক কাস্টম ট্যাবগুলি ব্যবহার করতে সক্ষম হতে আপনার প্রয়োজন:
একটি
CustomTabsServiceConnection
ব্যবহার করে একটি নতুন ব্রাউজার সেশন শুরু করুন এবং এটি কাস্টম ট্যাব অভিপ্রায়ে পাস করুন বাstartActivityForResult()
ব্যবহার করে কাস্টম ট্যাব কার্যকলাপ শুরু করুন।
পরিষেবা সংযোগটি এখনও প্রতিষ্ঠিত না হলে আপনি যদি দ্রুত স্টার্টআপ চান তবে উভয় পদ্ধতিকে একত্রিত করুন।
নীচের শীট কনফিগার করা হচ্ছে
একটি কাস্টম ট্যাবকে একটি আংশিক কাস্টম ট্যাবে পরিণত করতে, CustomTabBuilder
ক্লাসের setInitialActivityHeightPx()
পদ্ধতিতে কল করে পিক্সেলে প্রাথমিক লঞ্চের উচ্চতা নির্ধারণ করুন। ডিফল্টরূপে, আংশিক কাস্টম ট্যাবের আকার পরিবর্তনযোগ্য, কিন্তু আপনি এই আচরণটি নিষ্ক্রিয় করতে ACTIVITY\_HEIGHT\_FIXED
পাস করতে পারেন:
new CustomTabsBuilder().setInitialActivityHeightPx(
400,
ACTIVITY_HEIGHT_FIXED
);
পাশের শীট কনফিগার করা হচ্ছে
সাইড শীট আচরণ কনফিগার করতে, CustomTabBuilder
ক্লাসের setInitialActivityWidthPx()
পদ্ধতিতে কল করে পিক্সেলে প্রাথমিক লঞ্চের প্রস্থ নির্ধারণ করুন।
ডিফল্টরূপে, আংশিক কাস্টম ট্যাবের আকার পরিবর্তনযোগ্য, কিন্তু আপনি এই আচরণটি নিষ্ক্রিয় করতে ACTIVITY\_HEIGHT\_FIXED
পাস করতে পারেন:
CustomTabsIntent.Builder intentBuilder = new CustomTabsIntent.Builder(session)
.setInitialActivityHeightPx(400)
.setInitialActivityWidthPx(400);
.setActivitySideSheetBreakpointDp(800);
কাস্টম ট্যাব একটি সাইড শীট হিসাবে আচরণ করবে যদি স্ক্রীনের প্রস্থ setActivitySideSheetBreakpointDp() দ্বারা সেট করা ব্রেকপয়েন্ট মানের চেয়ে বড় হয়। যদি স্ক্রিনের প্রস্থ x
চেয়ে বেশি হয়, কাস্টম ট্যাবটি একটি পার্শ্ব শীট হিসাবে আচরণ করবে, অন্যথায় এটি একটি নীচের শীট হিসাবে আচরণ করবে৷ যদি কোন ব্রেকপয়েন্ট নির্দিষ্ট করা না থাকে, তাহলে ব্রাউজার বাস্তবায়ন ডিফল্ট মান 840dp
হিসাবে সেট করা উচিত। যদি x
<600dp
তে সেট করা হয় তাহলে ব্রাউজার বাস্তবায়ন ডিফল্ট 600dp
তে হবে।
একটি বিদ্যমান সেশন সহ একটি আংশিক কাস্টম ট্যাব চালু করুন৷
CustomTabsSession customTabsSession;
// ...
CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder(customTabsSession)
.setInitialActivityHeightPx(500)
.setInitialActivityWidthPx(400);
.setActivitySideSheetBreakpointDp(800);
.setCloseButtonPosition(CustomTabsIntent.CLOSE_BUTTON_POSITION_END)
// ...
.build();
customTabsIntent.launchUrl(context, Uri.parse(url))
startActivityForResult এর মাধ্যমে একটি আংশিক কাস্টম ট্যাব চালু করুন
private ActivityResultLauncher<String> mCustomTabLauncher = registerForActivityResult(new ActivityResultContract<String, Integer>() {
@Override
public Integer parseResult(int statusCode, @Nullable Intent intent) {
return statusCode;
}
@NonNull
@Override
public Intent createIntent(@NonNull Context context, String url) {
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder(customTabsSession)
.setInitialActivityHeightPx(500)
.setInitialActivityWidthPx(400);
.setActivitySideSheetBreakpointDp(800);
.setCloseButtonPosition(CustomTabsIntent.CLOSE_BUTTON_POSITION_END)
.setToolbarCornerRadiusDp(10);
Intent customTabsIntent = builder.build().intent;
customTabsIntent.setData(Uri.parse(url));
return customTabsIntent;
}
}, new ActivityResultCallback<Integer>() {
@Override
public void onActivityResult(Integer statusCode) {
// ...
}
});
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
Button selectButton = findViewById(R.id.select_button);
selectButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
mCustomTabLauncher.launch(customTabsIntent.intent);
}
});
}
পরবর্তী: কীভাবে আপনার কাস্টম ট্যাবে ব্যবহারকারীর ব্যস্ততা পরিমাপ করবেন তা শিখুন।