পদ্ধতি # 1:
সম্পূর্ণ স্বচ্ছ স্ট্যাটাস বারটি অর্জন করতে, আপনাকে ব্যবহার করতে হবে statusBarColor
, যা কেবলমাত্র 21 এবং তারপরের উপরে উপলব্ধ। windowTranslucentStatus
এপিআই 19 এবং তারপরের উপরে উপলব্ধ, তবে এটি স্ট্যাটাস বারের জন্য একটি রঙিন পটভূমি যুক্ত করে। যাইহোক, সেটিংটি windowTranslucentStatus
এমন একটি জিনিস অর্জন করে যা স্বচ্ছতে পরিবর্তিত statusBarColor
হয় না: এটি পতাকা SYSTEM_UI_FLAG_LAYOUT_STABLE
এবং SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
পতাকা সেট করে । একই প্রভাবটি পাওয়ার সহজতম উপায় হ'ল এই পতাকাগুলি ম্যানুয়ালি সেট করা, যা অ্যান্ড্রয়েড লেআউট সিস্টেম দ্বারা আরোপিত ইনসেটগুলি কার্যকরভাবে অক্ষম করে এবং আপনাকে নিজের প্রতিরোধের জন্য ছেড়ে দেয়।
আপনি আপনার onCreate
পদ্ধতিতে এই লাইনটি কল করুন :
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
/Res/values-v21/styles.xml এ স্বচ্ছতা সেট করতে ভুলবেন না:
<item name="android:statusBarColor">@android:color/transparent</item>
বা স্বচ্ছতা প্রোগ্রামক্রমে সেট করুন:
getWindow().setStatusBarColor(Color.TRANSPARENT);
এই পদ্ধতির ভাল দিকটি হ'ল একই লেআউটগুলি এবং ডিজাইনগুলি এআইপি 19 তেও রঙিন ট্রান্সলুসেন্ট স্ট্যাটাস বারের জন্য স্বচ্ছ স্ট্যাটাস বারের মাধ্যমে ব্যবসায়ের মাধ্যমে ব্যবহার করা যেতে পারে।
<item name="android:windowTranslucentStatus">true</item>
পদ্ধতি # 2:
যদি কেবলমাত্র আপনার স্ট্যাটাস বারের নীচে কোনও ব্যাকগ্রাউন্ড চিত্র আঁকার দরকার হয়, এর পিছনে কোনও ভিউ অবস্থানের পরিবর্তে, এটি আপনার কার্যকলাপের থিমের ব্যাকগ্রাউন্ডটিকে পছন্দসই চিত্রটিতে সেট করে এবং পদ্ধতি # তে বর্ণিত স্ট্যাটাস বারের স্বচ্ছতা সেট করেই এটি করা যেতে পারে method 1। আমি কয়েক মাস আগে থেকে অ্যান্ড্রয়েড পুলিশ নিবন্ধের জন্য স্ক্রিনশট তৈরি করতে এই পদ্ধতিটি ব্যবহার করেছি ।
পদ্ধতি # 3:
আপনি যদি অন্য বিন্যাসে কাজ করার সময় কিছু লেআউটগুলির জন্য স্ট্যান্ডার্ড সিস্টেম ইনসেটগুলি উপেক্ষা করতে পারেন তবে এটি করার একমাত্র কার্যকর উপায় হ'ল প্রায়শই সংযুক্ত ScrimInsetsFrameLayout
শ্রেণীর সাথে কাজ করা । অবশ্যই, এই শ্রেণিতে করা কিছু জিনিস সমস্ত পরিস্থিতিতে প্রয়োজনীয় নয়। উদাহরণস্বরূপ, যদি আপনি সিন্থেটিক স্ট্যাটাস বার ওভারলে ব্যবহার করার পরিকল্পনা না করেন তবে কেবল init()
পদ্ধতিটিতে সমস্ত কিছু মন্তব্য করুন এবং অ্যাটর্স.এক্সএমএল ফাইলটিতে কোনও কিছু যুক্ত করার ঝামেলা করবেন না। আমি এই পদ্ধতির কাজটি দেখেছি, তবে আমি মনে করি আপনি এটি খুঁজে পেতে পারেন যে এটি কিছু অন্যান্য প্রভাব নিয়ে আসে যা প্রায়শই পেতে অনেক কাজ হতে পারে।
আমি আরও দেখেছি আপনি একাধিক লেআউট মোড়ানোর বিরোধী। অন্যটির অভ্যন্তরে একটি বিন্যাস মোড়ানোর ক্ষেত্রে যেখানে উভয়ই match_parent
উচ্চতা এবং প্রস্থের জন্য রয়েছে সেখানে পারফরম্যান্সের প্রভাবগুলিও চিন্তিত হওয়ার পক্ষে খুব তুচ্ছ। নির্বিশেষে, FrameLayout
আপনি নিজের পছন্দ মতো অন্য কোনও ধরণের লেআউট শ্রেণিতে বিস্তৃত শ্রেণীর পরিবর্তন করে আপনি সেই পরিস্থিতি সম্পূর্ণরূপে এড়াতে পারবেন । এটা ঠিক কাজ করবে।
android:fitsSystemWindows="true"