当我点击动作栏上的微调器时,它应该会显示一个带有一系列项目的下拉列表。项目的每个视图持有者都有一个名称和一张照片。
但是,我希望微调器的标题是另一种布局(仅文本)。
简而言之:如何为标题微调器设置不同于下拉布局的布局?
Main.java
SpinnerAdapter spinnerAdapter = new SpinnerAdapter(this, dummyLists);
mMyListsSpinner.setAdapter(spinnerAdapter);
SpinnerAdapter.java
private class SpinnerAdapter extends BaseAdapter {
private String[] mListNames;
SpinnerAdapter(Context context, String[] listNames) {
this.mListNames = listNames;
}
@Override
public int getCount() {
if(this.mListNames == null) {
return 0;
}
return this.mListNames.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Context context = parent.getContext();
int spinnerItemViewLayout = R.layout.layout_spinner_dropdown_item;
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(spinnerItemViewLayout, parent, false);
TextView nameTextView = (TextView) view.findViewById(R.id.tv_spinner_list_name);
nameTextView.setText(this.mListNames[position]);
return view;
}
}
layout_spinner_dropdown_item.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearlayout_spinner_dropdown_item"
android:layout_width="222dp"
android:layout_height="@dimen/toolbar_actionbar_height"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_spinner_list_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="LIST"
android:textSize="@dimen/text_size_subheading"
android:textColor="@color/color_green_dark"/>
<ImageView
android:layout_width="42dp"
android:layout_height="42dp"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:src="@color/color_green_dark"/>
</RelativeLayout>
答案 0 :(得分:0)
这可能会有所帮助:Android Spinner with different layouts for “drop down state” and “closed state”?
基本要点:
getView()
类[getDropDownView()
]中重写Adapter
和SpinnerAdapter
getView()
中,您应该为标题栏增加常规布局,在这种情况下,它仅是TextView
。在getDropDownView()
中,您应该给layout_spinner_dropdown_item.xml
充气。