在 Android 2.2 上,我的 ActionBar 中的 Spinner 看起来非常丑陋,并且下拉文本颜色与背景颜色相同。这使得文本不可读。
这是相关代码。
spinner = new Spinner(getSupportActionBar().getThemedContext());
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>
(
getSupportActionBar().getThemedContext(),
R.layout.sherlock_spinner_dropdown_item,
new String[]{"All", "Solved", "Unsolved"}
);
spinner.setAdapter(spinnerArrayAdapter);
Edit: I have added the below 3 lines for completeness.
menu.add("Display")
.setActionView(spinner)
.setShowAsAction(MenuItem.Show_AS_ACTION_ALWAYS);
这是 Android 4.2 上的样子。这也是我期望它在 Android 2.2 上的样子。
当您创建SpinnerArrayAdapter
,你应该使用R.layout.sherlock_spinner_item
;那么你应该打电话setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item)
在适配器上。请注意两个资源名称之间的区别。
从示例代码来看:
Context context = getSupportActionBar().getThemedContext();
ArrayAdapter<CharSequence> list = ArrayAdapter.createFromResource(context, R.array.locations, R.layout.sherlock_spinner_item);
list.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);
对于您的代码,这将是:
spinner = new Spinner(getSupportActionBar().getThemedContext());
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>
(
getSupportActionBar().getThemedContext(),
R.layout.sherlock_spinner_item,
new String[]{"All", "Solved", "Unsolved"}
);
spinnerArrayAdapter.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);
spinner.setAdapter(spinnerArrayAdapter);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)