Android支持ActionBar之外的v7 SpinnerICS

时间:2014-07-22 01:10:57

标签: android android-fragments actionbarsherlock android-spinner android-support-library

我使用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小部件?

0 个答案:

没有答案