我的用户在Android 6.0中报告了与Spinner Control相关的问题。用户无法选择列表中的任何项目。相同的应用程序与< Android 6+版本。这是
以下是我的示例代码:
XML代码
<Spinner
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/spinnerImportance"
android:spinnerMode="dialog"
android:popupBackground="#f5f5f5"
android:prompt="@string/spinner_prompt"
android:theme="@style/Base.Widget.AppCompat.Spinner"
android:dropDownWidth="fill_parent" />
Java代码
public class EvaluationActivity extends ActionBarActivity implements AdapterView.OnItemSelectedListener {
private Spinner spinnerImportance;
String[] importance = {"Select", "1 or less - Low importance", "2 - Moderate importance", "3 - High importance", "4 - Exceptionally important"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_evaluation);
//Importance
spinnerImportance = (Spinner) findViewById(R.id.spinnerImportance);
spinnerImportance.setOnItemSelectedListener(this);
ArrayAdapter<String> dataAdapterImportance = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, importance);
dataAdapterImportance.setDropDownViewResource(android.R.layout.select_dialog_singlechoice);
spinnerImportance.setAdapter(dataAdapterImportance);
spinnerImportance.setSelection(getIndexFromScore(abs.M1, IMPORTANCE));
}
//Rest of the Code
}
我没有Android 6驱动的设备来修复和测试相同的设备。任何确定的解决方案都会有很大的帮助。
答案 0 :(得分:0)
我遇到了同样的问题,在我看来,这是造型问题。
我正在显示一个AppCompatSpinner
,其中包含我专门为对话框类型微调器创建的样式,因此它为spinnerMode
定义的属性设置为dialog
。我的基本微调器样式继承自Widget.AppCompat.Spinner
,默认情况下clickable
属性设置为true
,因为默认情况下微调器的类型为dropdown
。这导致整个微调器注册点击而不是单个项目。
因此,在我的对话框特定微调器样式中将clickable
属性设置为false
可以解决该问题。
在&lt; 6.0设备上不需要进行此调整的事实仍然很奇怪。