অ্যান্ড্রয়েড এ ম্যাটেরিয়াল ডিজাইন সেটআপ

S M Mohi-Us Sunnat
sunnat629.dev
Published in
3 min readMar 19, 2020

অ্যান্ড্রয়েড এ ম্যাটেরিয়াল ডিজাইন এর অ্যাট্রিবিউট নিয়ে কাজ করতে চাইলে প্রথমে আমাদের কিছু Environment সেটআপ করতে হবে যা না হলে আমরা আমাদের অ্যাপ-এ ম্যাটেরিয়াল ডিজাইন ইমপ্লেমেন্ট করতে পারব না। এ ব্লগে Environment সেটআপ টি দেখানো হচ্ছে কিন্তু এর পরের ব্লগ গুলতে আমরা এ নিয়ে কিছু আর লিখব না।

অ্যান্ড্রয়েড এর একটি নতুন প্রোজেক্ট থেকেই আমরা শুরু করি। নতুন প্রোজেক্ট টি বিল্ড হওয়ার পর app.gradle আমরা ম্যাটেরিয়াল ডিজাইন এর ডিপেন্ডেন্সি যুক্ত করব।

নিন্মের ছবিটি তে আমার প্রোজেক্টের ডিপেন্ডেন্সি দেখতে পারছেন। এতে ম্যাটেরিয়াল ডিজাইন এর ডিপেন্ডেন্সি হাইলাইট করা আছে, যার বেটা ভার্সন দিয়ে বিল্ড করা। আপনি চাইলে স্টাবল ভার্ষন ১.০.০ ব্যবহার করতে পারেন, তবে আমি সর্বশেষ ভার্ষনটি ব্যবহার করার জন্য বলব, কারণ নতুন ভার্ষন গুলোতে অনেক নতুন ফিচার এবং বাগ ফিক্সড করা থাকে।

এরপর আমরা একটি ছোট উদাহরণ দেখব, আমাদের activity_main এ একটি ম্যাটেরিয়াল বাটন অ্যাড করে run করি।

কি অ্যাপ চলেছে?? চলেনি, লগক্যাট-এ গেলে দেখবেন, ইরর খাচ্ছে, ইরর এর নমুনা টি নিন্মে দেয়া হল —

এর কারণ আমি যেদিন দেখেছি, অনেক মাথা চুলকানোর পরও বের করতে পারিনি। পরে আমাদের মাইটি stackOverFlow এর বদলৌতে জানতে পারলাম, এর মুল সমস্যা ছিল Style এর কারণে। আমরা যদি একটু style.xml এ যাই তবে দেখতে পাব —

এখানে আমরা দেখছি যে আমাদের অ্যাপ থিম এর প্যারেন্ট Theme.AppCompat.Light.DarkActionBar যা কিনা AppCompat এর আন্ডারে আর আমরা আমাদের লেয়াউট-এ ব্যবহার করছি com.google.android.material.button.MaterialButton ,

যা কিনা Material এর আন্ডারে আর তাই বাটনটি যখন এর প্যারেন্ট থিম AppCompat পায় যা কিনা Material হওয়ার কথা, তাই অ্যাপ টি ক্র্যাশ করে। তাই আমাদের প্যারেন্ট থিম পরিবর্তন করে Material এর একটি দিতে হবে। তবে ভয়ের কিছু নেই, AppCompat রিলেটেড সকল লেয়াউট Attribute ম্যাটেরিয়াল থিম সাপোর্ট করে। কারণ Material থিম এর প্যারেন্ট থিম হচ্ছে AppCompat

আমরা আমাদের প্রোজেক্ট এর জন্য Theme.AppCompat.Light.DarkActionBar এর পরিবর্তে Theme.MaterialComponents.DayNight.DarkActionBar বসিয়ে আবার অ্যাপ রান করি।

এবার দেখবেন, অ্যাপ টি চলছে।

অ্যাপ টি ঠিক মত চললে বুঝবেন যে আপনার এই অ্যান্ড্রয়েড প্রোজেক্ট-এ ম্যাটেরিয়াল ডিজাইন এর ডিপেন্ডেন্সি ইমপ্লিমেন্ট করা হয়ে গেছে এবং যেকোন ম্যাটেরিয়াল অ্যাট্রিবিউট ব্যবহার করতে পারবেন।

ইন শা আল্লাহ্‌, আমরা পরের পর্ব গুলতে বিভিন্ন ম্যাটেরিয়াল অ্যাট্রিবিউট-এর ব্যবহার দেখব।

ভাল লাগলে clap ও শেয়ার দিয়ে উৎসাহিত করবেন।

--

--