Spinner Drop-Down定制

时间:2014-09-02 09:38:02

标签: android android-layout

我使用带有微调器(下拉)的ActionBar,但问题是选择区域本身的文本不应该是列表中的元素之一。此外,我使用自定义适配器设置微调器中的元素,自定义适配器也可以自定义选择区域。

可能截图最好。这就是我想要实现的目标: 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 个答案:

答案 0 :(得分:1)

您必须在styles.xml中为Spinner组件应用样式

<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" />