我使用android support v7 appcompat库将一些代码从ActionBarSherlock转换为ActionBar Compat。
我的ActionBar代码运行正常。但是我的片段中还有ActionBar之外的一些ActionBarSherlock IcsSpinners,我希望这些微调器与ActionBarSherlock的ICS样式相同。所以我将内部支持v7库SpinnerICS文件从支持库中复制出来,因为它们是私有的,我们不能直接使用它们并将它们放入我自己的树中。
但是当我将这些IcsSpinners转换为SpinnerICS时,它们不再像在ActionBarSherlock中那样工作。我在列表中的第一个项目旁边看到了一个微调器标签,但是没有出现小的微调器三角形,按下该项目不会触发听众,因为我已经测试了日志。
这里我在项目中复制了SpinnerICS文件(你可能需要调整R.包):
$ ls -1 widget/
AbsSpinnerICS.java
AdapterViewICS.java
ListPopupWindow.java
SpinnerICS.java
这里是片段代码的样子:
public class Fragment1 extends Fragment {
View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
...
SpinnerICS spinner = (SpinnerICS) view.findViewById(R.id.spinner1);
spinner.setOnItemSelectedListener( new AdapterViewICS.OnItemSelectedListener() {
public void onItemSelected(AdapterViewICS<?> parent, View view, int pos, long id) {
if (pos > 0) { var = (String) parent.getItemAtPosition(pos); }
else { var = null; }
Log.v(TAG, String.format("Fragment1: onItemSelected: pos: %d var: %s", pos, var));
}
public void onNothingSelected(AdapterViewICS<?> parent) {
}
});
...
return view;
}
onActivityCreated(...) {
...
adapter = new ArrayAdapter( getActivity(), android.R.layout.simple_spinner_item, list );
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
...
}
有没有人在ActionBar之外使用这些SpinnerICS小部件?