আংশিক কাস্টম ট্যাব সহ মাল্টি-টাস্কিং

ডিফল্টরূপে, কাস্টম ট্যাবগুলি একটি পূর্ণ-উইন্ডো কার্যকলাপ হিসাবে চালু হয়। Chrome 107 থেকে শুরু করে, আপনি পোর্ট্রেট মোডে একটি ভিন্ন লঞ্চ উচ্চতা নির্দিষ্ট করতে আংশিক কাস্টম ট্যাব ব্যবহার করতে পারেন যাতে ব্যবহারকারীরা ওয়েব সামগ্রী দেখার সময় আপনার অ্যাপের সাথে ইন্টারঅ্যাক্ট করে মাল্টিটাস্ক করতে পারে। ব্যবহারকারীরা টুলবার হ্যান্ডেলটি উপরে টেনে এনে কাস্টম ট্যাবটিকে পূর্ণ-স্ক্রীনে প্রসারিত করতে পারে এবং হ্যান্ডেলটি নীচে টেনে প্রাথমিক লঞ্চের উচ্চতা পুনরুদ্ধার করতে পারে।

নিচের শীটের আংশিক ট্যাবের স্ক্রিনশট
নিচের শীটে আংশিক কাস্টম ট্যাব।

ল্যান্ডস্কেপ মোডে বড় স্ক্রীন বা ডিভাইসগুলির জন্য, Chrome 120 থেকে শুরু করে, আপনি নির্দিষ্ট করতে পারেন, একটি সাইড শীটে একটি আংশিক কাস্টম ট্যাব দেখানোর জন্য সর্বাধিক লঞ্চ প্রস্থ। একটি বিরতি পয়েন্ট সেট করে, আপনি কখন নীচে বা পাশের শীটে একটি আংশিক কাস্টম ট্যাব চালু করবেন তা নির্ধারণ করতে পারেন৷

একটি সাইড শীট আংশিক ট্যাবের স্ক্রিনশট
পাশের শীটে আংশিক কাস্টম ট্যাব।

পূর্বশর্ত

আংশিক কাস্টম ট্যাবগুলি ব্যবহার করতে সক্ষম হতে আপনার প্রয়োজন:

পরিষেবা সংযোগটি এখনও প্রতিষ্ঠিত না হলে আপনি যদি দ্রুত স্টার্টআপ চান তবে উভয় পদ্ধতিকে একত্রিত করুন।

নীচের শীট কনফিগার করা হচ্ছে

একটি কাস্টম ট্যাবকে একটি আংশিক কাস্টম ট্যাবে পরিণত করতে, 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);
        }
    });
}

পরবর্তী: কীভাবে আপনার কাস্টম ট্যাবে ব্যবহারকারীর ব্যস্ততা পরিমাপ করবেন তা শিখুন।