নিদর্শন এবং উপাদান

অ্যান্ড্রয়েড 8.0-এ, সেটিংস মেনু বেশ কিছু উপাদান এবং উইজেট লাভ করে যা সাধারণ ব্যবহারগুলিকে কভার করে৷ ডিভাইস নির্মাতারা এবং বিকাশকারীদের সেটিংস অ্যাপ প্রসারিত করার সময় সাধারণ উপাদানগুলি ব্যবহার করতে উত্সাহিত করা হয় যাতে নতুন ব্যবহারকারী ইন্টারফেস বিদ্যমান সেটিংস UI এর সাথে সামঞ্জস্যপূর্ণ থাকে।

এখানে উন্নতির একটি সারসংক্ষেপ রয়েছে:

  • সমর্থন লাইব্রেরি পছন্দ কাঠামোতে বিভাজক আচরণ পরিবর্তন। বিভাজক এখন বিভাগের মধ্যে টানা হয়.
  • অ্যাকশনবার থিম পরিবর্তন। অ্যাকশনবার এখন হালকা রঙের থিম ব্যবহার করে, অ্যাকসেন্ট রঙের পাঠ্য সহ।
  • নতুন পছন্দ লেআউট। পছন্দের কোনো আইকন না থাকলেও আইকনগুলির জন্য স্থান থাকে।

নতুন উইজেট:

  • অ্যাপের বিবরণের জন্য একটি হেডার উইজেট। অ্যাপ আইকন, অ্যাপ লেবেল এবং অন্যান্য তথ্য প্রদর্শন করে।
  • কিছু পৃষ্ঠায় একটি প্রসারিত বোতাম। পৃষ্ঠাটি সঙ্কুচিত হিসাবে শুরু হতে পারে এবং ব্যবহারকারী প্রসারিত বোতামে ক্লিক না করা পর্যন্ত কম গুরুত্বপূর্ণ আইটেমগুলি লুকাতে পারে৷
  • ডিফল্ট অ্যাপ পিকার UI:
    • ডিফল্ট ব্রাউজার, ডিফল্ট ফোন অ্যাপ ইত্যাদি বেছে নেওয়ার জন্য UI।
    • পূর্বে একটি ডায়ালগ, এখন এটি একটি পূর্ণ স্ক্রীন রেডিও বোতাম-ভিত্তিক UI।
  • একটি "মাস্টারসুইচ" শৈলী পছন্দ। এটি দুটি ক্লিক লক্ষ্য সহ একটি পছন্দ। বাম লক্ষ্য একটি সাবসেটিং খণ্ড বা অভিপ্রায় বাড়ে। ডান টার্গেট হল একটি সুইচ টগল, যা পুরো পৃষ্ঠার জন্য চালু/বন্ধ নিয়ন্ত্রণ করে।

উদাহরণ এবং উৎস

  • বিভাজক আচরণ
    • নতুন বিভাজক আচরণ ব্যবহার করার জন্য সেটিংসের সমস্ত পৃষ্ঠা পরিবর্তন করা হয়েছে৷
    • বিভাজক আচরণ একটি ThemeOverlay হিসাবে সংজ্ঞায়িত করা হয়েছে:
      packages/apps/Settings/res/values/styles_preference.xml
  • অ্যাকশনবার থিম পরিবর্তন
    • নতুন ActionBar থিম ব্যবহার করার জন্য সেটিংসের সমস্ত পৃষ্ঠা পরিবর্তন করা হয়েছে।
    • থিমটি Theme.DeviceDefault.Settings-এ সংজ্ঞায়িত করা হয়েছে
  • নতুন পছন্দ লেআউট
    • সেটিংসের অনেক পৃষ্ঠা এখন নতুন পছন্দ লেআউট ব্যবহার করছে।
    • আপনি কোড খুঁজে পেতে পারেন:
      packages/apps/Settings/res/values/styles_preference.xml
  • অ্যাপ হেডার উইজেট
    • সেটিংসের বেশিরভাগ অ্যাপ তথ্য পৃষ্ঠাগুলি ইতিমধ্যেই নতুন অ্যাপ শিরোনাম প্রয়োগ করছে।
    • উদাহরণ এবং কোড এখানে পাওয়া যাবে:
      packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
  • প্রসারিত বোতাম
    • উদাহরণ এবং কোড এখানে পাওয়া যাবে:
      packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java

      দ্রষ্টব্য: এই উপাদানটি অবশ্যই ড্যাশবোর্ড ফ্র্যাগমেন্টের সাথে একসাথে ব্যবহার করা উচিত। ( আপডেট করা তথ্য আর্কিটেকচারে ড্যাশবোর্ড ফ্র্যাগমেন্ট সম্পর্কে আরও বিশদ দেখুন।)

  • ডিফল্ট অ্যাপ পিকার
    • আপনি বেস ক্লাসের জন্য কোড খুঁজে পেতে পারেন:
      packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
    • DefaultAppPickerFragment-এর বেশ কয়েকটি সাবক্লাস রয়েছে, প্রতিটি ভিন্ন উদ্দেশ্যের জন্য একটি পিকার প্রয়োগ করে।
  • মাস্টারসুইচ শৈলী পছন্দ
    • কোড এখানে রয়েছে: https://cs.android.com/android/platform/superproject/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
    • একটি উদাহরণ ব্যবহারের ক্ষেত্রে Wi-Fi প্রাথমিক সুইচ। আপনি এখানে একটি উদাহরণ পেতে পারেন: packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java

বাস্তবায়ন

ডিভাইস নির্মাতারা বাক্সের বাইরে সমস্ত নতুন উপাদান ব্যবহার শুরু করতে পারেন। যদি OEMগুলি একটি নতুন "মাস্টারসুইচ" শৈলী পছন্দ বা ডিফল্ট অ্যাপ পিকার প্রয়োগ করার সিদ্ধান্ত নেয়, তবে তাদের আরও বিশদ বিবরণের জন্য এই নথিতে উদাহরণগুলি এবং প্রতিটি উপাদানের সাথে লেখা রেফারেন্স ফাইলগুলি (জাভাডোক) অনুসরণ করা উচিত।

সেটিংস মেনু কাস্টমাইজ করুন

  • বিভাজক আচরণ। কীভাবে বিভাজক আঁকা হয় তা পরিবর্তন করতে, সেটিংস বিভাজকের জন্য শৈলী আপডেট করুন এবং নিম্নলিখিত মান পরিবর্তন করুন:
    • allowDividerAbove
    • allowDividerBelow
    • allowDividerAfterLastItem
  • অ্যাকশনবার থিমের রঙ। অ্যাক্টিভিটিগুলিকে তাদের থিম হিসাবে Theme.DeviceDefault.Settings ব্যবহার করা উচিত, অথবা অভিভাবক হিসাবে Theme.DeviceDefault.Settings ব্যবহার করে একটি কাস্টম থিম তৈরি করা উচিত৷
  • অ্যাপ হেডার উইজেট। প্রতিটি ক্ষেত্র কাস্টমাইজ করতে AppHeaderController-এ সেটার ব্যবহার করুন এবং একবার সমস্ত ক্ষেত্র সেট হয়ে গেলে build() কল করুন।
  • প্রসারিত বোতাম:
    • কার্যকারিতা সম্পূর্ণরূপে নিষ্ক্রিয় করতে, ProgressiveDisclosureMixin-এর জন্য কনস্ট্রাক্টরকে ওভাররাইড করুন এবং KeepExpanded কে সত্যে সেট করুন।
    • প্রাথমিকভাবে কতগুলি আইটেম দেখাতে হবে তা কাস্টমাইজ করতে, ফ্র্যাগমেন্টের onAttach(Context) পদ্ধতির সময় ProgressiveDisclosureMixin.setTileLimit() পদ্ধতিতে কল করুন।