2014-09-02 4 views
0

Я использую ActionBar со счетчиком (drop-down), но дело в том, что текст на самой области выбора не должен быть одним из элементов в списке. Кроме того, я настраиваю элементы в счетчике с помощью пользовательского адаптера, который также настраивает область выбора.Настройка выпадающего списка Spinner

Возможно, скриншот был бы лучше. Это то, что я хочу добиться: enter image description here

Это то, что я в настоящее время:

enter image description here

Отрывок из моего пользовательского адаптера:

public class CategoriesDropDownAdapter extends BaseAdapter{ 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     if (convertView == null) { 
      LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
      convertView = mInflater.inflate(R.layout.categories_drop_down_item, parent, false); 
     }   
     Category category = getCategory(position); 
     ImageView icon = (ImageView) convertView.findViewById(R.id.catIcon); 
     TextView title = (TextView) convertView.findViewById(R.id.catTitle);   
     //setting icon, title and background color 
     icon.setImageDrawable(category.getIcon());   
     title.setText(category.getTitle()); 
     convertView.setBackgroundColor(category.getBackgroundColor());  
     //setting the width of the drop-down to take all the layout width 
     WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); 
     DisplayMetrics metrics = new DisplayMetrics(); 
     wm.getDefaultDisplay().getMetrics(metrics);  
     convertView.setLayoutParams(new LayoutParams(metrics.widthPixels, 100)); 

     return convertView; 
    } 
} 

Как я могу избежать настройки область выбора (область на самой панели) при использовании пользовательского адаптера? Я хочу, чтобы эта область была настроена по-разному (без этого треугольника в правом нижнем углу, например).

ответ

1

Вы должны применить стиль для компонента Spinner в styles.xml

<resources> 
<style name="spinner_style"> 
    // Change background 
    <item name="android:background">@drawable/img</item> 

    <item name="android:dropDownWidth">fill_parent</item> 
    <item name="android:showDividers">beginning|middle|end</item> 
    <item name="android:alignmentMode">alignBounds</item> 
    <item name="android:dividerHeight">2dp</item> 
    <item name="android:scrollbars">none</item> 
    <item name="android:scrollbarAlwaysDrawVerticalTrack">false</item> 
    <item name="android:scrollbarTrackVertical">@android:color/transparent</item> 
    <item name="android:dropDownSelector">@android:color/white</item> 
    <item name="android:requiresFadingEdge">none</item> 
</style> 
</resources> 

В UI файл Xml

<Spinner 
    android:id="@+id/ics_spinner" 
    style="@style/spinner_style" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:scrollbars="none" /> 
+0

Как это сделать, если мой Spinner/ActionBar не описывается в XML, но в код? actionBar.setNavigationMode (ActionBar.NAVIGATION_MODE_LIST); actionBar.setListNavigationCallbacks (новые категорииDropDownAdapter (...), this); – Haji

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