عرض يدويًا عرض القائمة المنسدلة في Android
سؤال
هل من الممكن تعيين عرض قائمة المنسدلة في الرمز؟ لديّ غزل يسكنه أعداد صحيحة ، ولا يبدو جيدًا مع توسيع القائمة إلى العرض الكامل. هل يمكنني ضبط العرض لالتفاف المحتوى بطريقة أو بأخرى؟
Spinner hSpinner = (Spinner) timerView.findViewById(R.id.timer_hour_spinner);
ArrayList<Integer> hList = new ArrayList<Integer>(21);
for (int i = 0; i <= 20; i++) { hList.add(i); }
ArrayAdapter hAdapter = new ArrayAdapter(RemindMe.this, android.R.layout.simple_spinner_item, hList);
hAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
hSpinner.setAdapter(hAdapter);
شكرًا!
لينوس
المحلول
يمكنك تغيير عرض أي شيء في الكود عن طريق ضبطه LayoutParams
. تفاصيل ذلك تختلف عن طريق الحاوية (LinearLayout
ضد. RelativeLayout
ضد. ...).
ومع ذلك ، أنا في حيرة من أمري لماذا تريد تغيير العرض "في الكود". لماذا لا تحدد العرض ليكون فقط wrap_content
في التصميم XML؟
نصائح أخرى
فقط استخدم:
setDropDownWidth(desiredWidth);
من السهل السيطرة على المظهر المنسدلة الدوار. جرب هذا:
//Step 1. create the drop down list
static List<String> special_Spinner_Display_List = new ArrayList<String>();
// add your values to the list...(this is best done using a for loop)
special_Spinner_Display_List.add(item1);
special_Spinner_Display_List.add(item2); //etc., etc.
//Step 2. build the spinner
ArrayAdapter arrayAdapter_special = new ArrayAdapter(this,
R.layout.your_special_spinner, special_Spinner_Display_List);
arrayAdapter_special.setDropDownViewResource(R.layout.special_spinner_dropdown);
specialSpinner.setAdapter(arrayAdapter_special);
//Step 3. create an XML layout file called special_spinner_dropdown where you can
//style to your heart's content. Here's an example:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/SpinnerDropdown"
style="?android:attr/spinnerDropDownItemStyle"
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="#D5ECED"
android:ellipsize="marquee"
android:singleLine="true"
android:textSize="24sp"
android:textStyle="bold"
android:textColor="@color/black" />
هذا هو. Lemme تعرف كيف يعمل!
تعيين عرض المنسدلة في ملف XML من Spinner باستخدام العلامة
Android: dropdownwidth = "@dimen/assired_width"
شرح:
mDropDownWidth = pa.getLayoutDimension(R.styleable.Spinner_dropDownWidth,
ViewGroup.LayoutParams.WRAP_CONTENT);
يستخدم هذا الحقل لعرض القائمة المنسدلة عند تهيئة عنصر الدوران في فئة الدوران
لتغيير عرض القائمة المنسدلة بشكل برمجي فوق مستوى API 16 ، استخدم
mSpinner.setDropDownWidth(size_in_pixel);