我使用带有微调器(下拉)的ActionBar,但问题是选择区域本身的文本不应该是列表中的元素之一。此外,我使用自定义适配器设置微调器中的元素,自定义适配器也可以自定义选择区域。
可能截图最好。这就是我想要实现的目标:
这就是我目前所拥有的:
我的自定义适配器的代码段:
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;
}
}
使用自定义适配器时,如何避免自定义选择区域(条形图上的区域)?我希望以不同的方式定制该区域(例如,在右下角没有该三角形)。
答案 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" />