2016-12-29 3 views
0

Я использую элемент управления AppCompatSpinner с длинными и короткими элементами. Когда выбран короткий элемент, счетчик слишком широк, его значок отображается слишком далеко от текста, потому что текст такой короткий. Есть ли способ сделать спиннер меньше, если предмет небольшой?Изменение ширины ширины для выбранного элемента

+0

ты попытался с помощью 'spinner.setDropDownWidth (ширину); '? –

+0

Мне нужна «ширина», чтобы быть динамичной, хотя – Ruben2112

ответ

0

Это довольно хакки.

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) { 
     String text = adapterView.getItemAtPosition(position).toString(); 
     Rect bounds = new Rect(); 
     Paint textPaint = new Paint(); 
     textPaint.measureText(text); 
     textPaint.setTextSize(45); 
     textPaint.getTextBounds(text, 0, text.length(), bounds); 
     int width = bounds.width(); 
     ViewGroup.LayoutParams params = spinner.getLayoutParams(); 
     params.width = width + 290; 
     spinner.setLayoutParams(params); 
     } 
     @Override public void onNothingSelected(AdapterView<?> adapterView) { 
     } 
    }); 

Надеется, что это помогает :)

Смежные вопросы