آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

کمک فوری نیاز دارم! تغییر عرض منوی dropdown در spinner

شیخی  9 سال پیش  9 سال پیش
0 0

لینک دانلود پروژه

سلام. دوستان من میخوام اندازه عرض منوی dropdown برای اسپینر کوچیک بشه به اندازه محتویاتش اما نتونستم
لطفا راهنمایی کنید

0 0
سلام ، خب عرضش رو wrap_content بذار . (9 سال پیش)
0 0
گذاشتم اما تغییری نکرد (9 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
مهدی  9 سال پیش
0 0

به اسپینر یه style دادی، فایل style رو باز کن و این کد رو بزار ببین حل میشه

 <item name="android:layout_weight=">wrap_content</item>
0 0
سلام. ممنون وقت گذاشتید. اما درست نشد. البته کد شما رو به این صورت wrap_content هم تغییر دادم اما بازهم جواب نداد. (9 سال پیش)
0 0
کد کامل نیومد؛ منظورم این بود که weight رو در کد شما به width هم تغییر دادم اما درست نشد (9 سال پیش)
پاسخ به سوال 
سجاد تاج‌الدین  9 سال پیش
0 0

سلام

من هم همین مشکل را داشتم، با این کد حل شد. امیدوارم  مشکل شما هم حل بشه. البته من چون تعداد spinnerهام زیاد بود تابع تعریف کردم. قسمت آخ که توی try-catch هست مربوط به ارتفاعه.

 private void spinner_black(Spinner spinner, List<String> spinner_items) {

ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, spinner_items) {

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView textView = (TextView) view.findViewById(android.R.id.text1);
textView.setTextColor(Color.rgb(0, 0, 0));
//textView.setTextSize(12);
//textView.setTypeface(face);
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, G.font_size1);
return view;
}


@Override
public View getDropDownView(int position, View convertView,
ViewGroup parent) {
View v = super.getDropDownView(position, convertView, parent);
v.setBackgroundColor(Color.rgb(255, 255, 255));
((TextView) v).setTextSize(TypedValue.COMPLEX_UNIT_SP, G.font_size1);
((TextView) v).setTextColor(Color.rgb(64, 189, 232));
((TextView) v).setPadding(35, 10, 5, 10);
return v;
}
};

dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
spinner.setAdapter(dataAdapter);
try {
Field popup = Spinner.class.getDeclaredField("mPopup");
popup.setAccessible(true);

// Get private mPopup member variable and try cast to ListPopupWindow
android.widget.ListPopupWindow popupWindow = (android.widget.ListPopupWindow) popup.get(spinner);

// Set popupWindow height to 500px
popupWindow.setHeight(500);
}
catch (NoClassDefFoundError | ClassCastException | NoSuchFieldException | IllegalAccessException e) {
// silently fail...
}
}
+1 0
ببخشید، من برای ارتفاع نوشتم. برای عرض هم یه لایه ایجاد کن به همون عرضی که میخوای و بعد spinner را توش بذار با عرض match_parent. من اینجوری هر عرضی خواستم به spinner دادم، مشکلی هم نداشت. (9 سال پیش)
0 0
سلام. ممنون وقت گذاشتید و جواب دادید من خط آخر try رو به width تغییر دادم اما باز هم عرض پنجره popup تغییر نکرد منظور شما رو از قرار دادن اسپینر در لایه متوجه نشدم. با عرض خود اسپینر مشکلی ندارم؛ میخوام عرض پنجره ی لیست کم بشه (9 سال پیش)
0 0
البته من یه تغییر ایجاد کرده بودم که فکر میکنم ایراد کارم از همونجاست در کد شما این خط رو نمیشناسه: ListPopupWindow در تعریف popupWindow باید چکار کنم؟ (9 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .