在Android 2.2上的ActionBarSherlock中用作自定义视图时的微调器下拉样式

在Android 2.2上的ActionBarSherlock中用作自定义视图时的微调器下拉样式,android,android-actionbar,actionbarsherlock,android-spinner,Android,Android Actionbar,Actionbarsherlock,Android Spinner,我用的是ActionBarSherlock。在我的应用程序中,我需要在操作栏中使用2个微调器,所以我使用列表导航+添加第二个微调器和自定义视图 我使用以下代码将微调器添加到自定义视图: ActionBar bar = getSupportActionBar(); // FALLBACK: Use native actionbar dropdown style for 11+ API. Or use ActionBarSherlock style. int dropDownStyle = (VE

我用的是ActionBarSherlock。在我的应用程序中,我需要在操作栏中使用2个微调器,所以我使用列表导航+添加第二个微调器和自定义视图

我使用以下代码将微调器添加到自定义视图:

ActionBar bar = getSupportActionBar();

// FALLBACK: Use native actionbar dropdown style for 11+ API. Or use ActionBarSherlock style.
int dropDownStyle = (VERSION.SDK_INT < 11) ? R.attr.actionDropDownStyle : android.R.attr.actionDropDownStyle;           

MyAdapter someAdapter = new MyAdapter(this, list);          

Spinner mySpinner = new Spinner(this, null, dropDownStyle);                    
mySpinner.setAdapter(someAdapter);        
mySpinner.setOnItemSelectedListener(this);

bar.setCustomView(mySpinner);
bar.setDisplayShowCustomEnabled(true);
ActionBar=getSupportActionBar();
//回退:对11+API使用本机actionbar下拉样式。或者使用ActionBarSherlock样式。
int dropDownStyle=(VERSION.SDK_int<11)?R.attr.actionDropDownStyle:android.R.attr.actionDropDownStyle;
MyAdapter someAdapter=新的MyAdapter(此,列表);
微调器mySpinner=新微调器(此项为空,下拉样式);
setAdapter(someAdapter);
setOnItemSelectedListener(这个);
bar.setCustomView(mySpinner);
bar.setDisplayShowCustomEnabled(真);
在安卓4.0.3上,所有功能都能完美运行

安卓2.2行为

列表导航微调器类似于Android 4.0.4(下拉列表)。但“自定义视图”中的微调器会显示对话框,而不是在“微调器视图”上单击下拉列表

所以我需要在Android 2.2上的自定义视图中将微调器显示为下拉菜单,就像在Android 4.0.4上一样


ActionBarSherlock使用自定义微调器控件,
ICSpinner
,该控件提供下拉功能。虽然这确实存在于
内部
包中,但它是一个公共类,因此您可以切换代码以使用它。这将为您提供列表导航控件使用的下拉列表的精确镜像


但是,请记住,此控件并非设计用于任何位置,而是作为内置列表导航,因此可能缺少所需的功能或特性。

ActionBarSherlock使用自定义微调器控件,
ICSpinner
,它提供下拉功能。虽然这确实存在于
内部
包中,但它是一个公共类,因此您可以切换代码以使用它。这将为您提供列表导航控件使用的下拉列表的精确镜像


但是,请记住,此控件并非设计用于任何地方,而是作为内置列表导航,因此可能缺少您需要的功能或特性。

感谢ABS开发者的回复:))。是的,我知道我可以使用IcsSpinner。但它是一些安卓API版本控件的镜像。我只想在API 11之前的Android和API 11+上的本机微调器控件上使用它。也许还有其他解决方案?您可以始终使用layout-v11文件夹来使用原始微调器。然后在您的正常布局中使用ICSpinner。感谢ABS开发者的回复:))。是的,我知道我可以使用IcsSpinner。但它是一些安卓API版本控件的镜像。我只想在API 11之前的Android和API 11+上的本机微调器控件上使用它。也许还有其他解决方案?您可以始终使用layout-v11文件夹来使用原始微调器。然后在常规布局中使用ICSpinner。