Android 6.0 Marshmallow中的微调器功能问题

时间:2016-06-09 13:10:02

标签: android

我的用户在Android 6.0中报告了与Spinner Control相关的问题。用户无法选择列表中的任何项目。相同的应用程序与< Android 6+版本。这是

EC2HardwareSupplier

以下是我的示例代码:

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驱动的设备来修复和测试相同的设备。任何确定的解决方案都会有很大的帮助。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,在我看来,这是造型问题。

我正在显示一个AppCompatSpinner,其中包含我专门为对话框类型微调器创建的样式,因此它为spinnerMode定义的属性设置为dialog。我的基本微调器样式继承自Widget.AppCompat.Spinner,默认情况下clickable属性设置为true,因为默认情况下微调器的类型为dropdown。这导致整个微调器注册点击而不是单个项目。

因此,在我的对话框特定微调器样式中将clickable属性设置为false可以解决该问题。

在&lt; 6.0设备上不需要进行此调整的事实仍然很奇怪。