我正在开发一个Android应用程序。
我使用自定义Spinner进行选择。
我遇到了一个问题,就是当我按下Spinner时,Spinner里面的自定义视图
似乎无法选择。
我希望效果可以包含内部的所有内容,而不仅仅是Spinner之外的内容。
喜欢
xml:
<Spinner
android:id="@+id/calendars_spinner"
android:focusable="true"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="12dip"
android:layout_marginRight="12dip"
android:layout_weight="1"
android:gravity="center_vertical"
android:paddingBottom="10dip"
android:paddingTop="10dip"/>
Spinner适配器的getView
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(mContext.getApplicationContext());
convertView = inflater.inflate(R.layout.calendar_spinner_item, parent,
false);
CalendarGroup group = groups.get(position);
convertView.setBackgroundColor(group.getColor());
TextView name = (TextView) convertView.findViewById(R.id.calendar_name);
if (name != null) {
String displayName = group.getGroupName();
name.setText(displayName);
TextView accountName = (TextView) convertView.findViewById(R.id.account_name);
if (accountName != null) {
accountName.setText(mEvent.getOwner());
accountName.setVisibility(TextView.VISIBLE);
}
}
convertView.setTag(position);
return convertView;
}
里面的视图(calendar_spinner_item.xml)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/calendar_name"
style="?android:attr/spinnerItemStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:textColor="#FFFFFFFF"
android:textSize="18sp" />
<TextView
android:id="@+id/account_name"
style="?android:attr/spinnerItemStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@id/calendar_name"
android:layout_below="@id/calendar_name"
android:ellipsize="marquee"
android:singleLine="true"
android:textColor="#FFFFFFFF"
android:textSize="14sp" />
谢谢!
答案 0 :(得分:1)
而不是:
convertView.setBackgroundColor(group.getColor());
添加可选择的drawable:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:backround="@drawable/some_selectable_drawable>
这就是drawable应该是相似的:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_sel"
android:state_selected="true"
android:state_pressed="true"/>
<item android:drawable="@drawable/button_unsel"
android:state_selected="false"
android:state_pressed="false"/>
</selector>
或许最初只是尝试删除此#setBackgroundColor调用,看看会发生什么。
希望有所帮助