1

我正在使用 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);

在 Android 4.0.3 上一切正常。

Android 2.2 行为

列表导航微调器在 Android 4.0.4 上看起来像(作为下拉菜单)。但是自定义视图中的微调器在微调器视图单击时显示对话框而不是下拉列表。

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

在此处输入图像描述

4

1 回答 1

6

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

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

于 2012-11-29T16:30:20.713 回答