我终于设法使用此代码将ICS样式的微调器变为我的选项卡式导航夏洛特片段的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时,它会覆盖(替换?overdraws?)第一个(我在第二个片段中添加两个名称不同),如下所示:
是否可以在ActionBar中有2个CustomViews,或者我是在咆哮错误的树?那么,如何在ActionBar中实现2个ICS微调器?
答案 0 :(得分:0)
根据之前的评论:
为了添加多个视图,您应该只能将它们包装在容器中,然后将该容器设置为ActionBar
的自定义视图。即水平LinearLayout
听起来像个好人。