উত্তর:
অ্যান্ড্রয়েড এম
অ্যান্ড্রয়েড .0.০-তে নতুন, স্পিনারের এখন android:popupTheme
প্যারামিটার রয়েছে যা আপনাকে পপআপ (ড্রপডাউন) এর জন্য ব্যবহৃত থিম সেট করতে দেয়।
আপনি এটি হিসাবে ব্যবহার করতে পারেন:
<Spinner
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:popupTheme="@android:style/ThemeOverlay.Material.Light" />
এটি 23++ এআইপি স্তরের ডিভাইসগুলিতে কাজ করবে তবে অ্যান্ড্রয়েডের নিম্ন সংস্করণে চলমান ডিভাইসগুলিতে নয়।
AppCompat
এটিই অ্যাপকম্প্যাটটি আসে। এর স্পিনার বাস্তবায়নও সমর্থন করে popupTheme
তবে সঠিক হওয়ার জন্য এটি আরও কিছুটা জড়িত।
<Spinner
android:layout_height="wrap_content"
android:layout_width="match_parent"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
এর পরে, অ্যাপকম্প্যাট দিয়ে কাজ করতে সক্ষম হতে আপনাকে আপনার অ্যাডাপ্টারটি আপডেট করতে হবে। আপনি এটি নতুন ThemedSpinnerAdapter
ইন্টারফেসটি প্রয়োগ করে তা করেন ।
public class MyAdapter extends BaseAdapter implements ThemedSpinnerAdapter {
Theme getDropDownViewTheme() { ... }
void setDropDownViewTheme(Theme theme) { ... }
}
এই পদ্ধতিগুলি স্পিনার দ্বারা কোনও ড্রপ ডাউন ভিউগুলিকে উত্সাহিত করার জন্য কোন থিমটি ব্যবহার করতে হবে তা অ্যাডাপ্টারটি বলতে সক্ষম হয়। এটি যতটা সম্ভব সহজ করার জন্য আমরা আপনাকে একটি Helper
ক্লাস দিয়েছি যা আপনি আপনার অ্যাডাপ্টারে প্লাগ ইন করতে পারেন।
এর অর্থ হল যে আপনার অ্যাডাপ্টারটি এমন কিছু হয়ে যায়:
public class MyAdapter extends BaseAdapter implements ThemedSpinnerAdapter {
private final ThemedSpinnerAdapter.Helper mDropDownHelper;
public MyAdapter(Context context) {
mDropDownHelper = new ThemedSpinnerAdapter.Helper(context);
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
View view;
if (convertView == null) {
// Inflate the drop down using the helper's LayoutInflater
LayoutInflater inflater = mDropDownHelper.getDropDownViewInflater();
view = inflater.inflate(R.layout.my_dropdown, parent, false);
}
// ...
return view;
}
@Override
public void setDropDownViewTheme(Theme theme) {
mDropDownHelper.setDropDownViewTheme(theme);
}
@Override
public Theme getDropDownViewTheme() {
return mDropDownHelper.getDropDownViewTheme();
}
}
জন্য স্পিনার এর তীর আমি ব্যবহার করেছি android:backgroundTint="@color/white"
এই API 21 থেকে কাজ করবে
স্পিনার দর্শন এবং ড্রপডাউন দেখার জন্য:
ArrayAdapter<Area> areasAdapter = new ArrayAdapter<Area>(getContext(),R.layout.spinner_item, areas);
areasAdapter.setDropDownViewResource(R.layout.dropdwon_item);
areasSpinner.setAdapter(areasAdapter);
জন্য getView () অ্যাডাপ্টারের spinner_item.xml ব্যবহার করবে
জন্য getDropDownView () অ্যাডাপ্টারের dropdwon_item.xml ব্যবহার করবে
তারপরে আপনি নিজের পছন্দ মতো আপনার কাস্টম লেআউটগুলি ব্যবহার করতে পারেন
আশা করি এটা সাহায্য করবে
কেবলমাত্র রেফারেন্সের জন্য আপনি যদি CursorAdapter
প্রয়োগটি প্রয়োগ করেন তবে আপনার প্রয়োগটি আরও সহজ হতে পারে, কেবল ওভাররাইড করা উচিত newView()
, getDropDownView()
সেখানে ওভাররাইড করার দরকার নেই:
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return mDropDownHelper.getDropDownViewInflater().inflate(R.layout.list_item, parent, false);
}
আপনি এটি চেষ্টা করতে পারেন: আপনার লেআউট ফোল্ডারে একটি স্পিনার_সাইটম.এক্সএমএল করুন:
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:padding="10dp"
android:background = "#ffffff"
android:textColor="@color/primary_text"
android:textSize="@dimen/text_size_normal" />
তারপরে এই কোডটি ব্যবহার করুন:
spinnerAdapter = new ArrayAdapter<String>(R.layout.spinner_item,items);