我终于设法使用以下代码将 ICS 样式的微调器放入我的选项卡式导航 Sherlock 片段的 Android 2.3.x ActionBar 中:
ActionBar bar = getSherlockActivity().getSupportActionBar();
bar.setDisplayHomeAsUpEnabled(true);
int dropDownStyle = R.attr.actionDropDownStyle;
ArrayAdapter<String> someAdapter = new ArrayAdapter<String>(getSherlockActivity()
.getSupportActionBar().getThemedContext(), R.layout.sherlock_spinner_dropdown_item,
new String[] {
"Last 7 days", "Last month", "Last 6 months", "Last year"
});
IcsSpinner mySpinner = new IcsSpinner(getActivity(), null, dropDownStyle);
mySpinner.setAdapter(someAdapter);
mySpinner.setOnItemSelectedListener(new IcsAdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(IcsAdapterView<?> parent, View view, int position, long id) {
switch (position) {
//do stuff
}
}
@Override
public void onNothingSelected(IcsAdapterView<?> parent) {
// simulate a click on the first item of the spinner
//do stuff
}
});
bar.setCustomView(mySpinner);
bar.setDisplayShowCustomEnabled(true);
显示如下:
但是下一个选项卡需要在 ActionBar 中有 2 个 ICS 微调器。(在使用 ABS 之前,我在 Activity 中有一个微调器,第二个微调器的选项位于标准选项菜单中。)
当我尝试添加第二个 CustomView 时,它会覆盖(替换?过度绘制?)第一个(我在第二个片段中添加两个,具有不同的名称),如下所示:
ActionBar 中是否有可能有 2 个自定义视图,或者我是在吠叫错误的树吗?那么,如何在 ActionBar 中实现 2 个 ICS 微调器?