0

我终于设法使用以下代码将 ICS 样式的微调器放入我的选项卡式导航 Sherlock 片段的 Android 2.3.x ActionBar 中:

ActionBar bar = getSherlockActivity().getSupportActionBar();
    bar.setDisplayHomeAsUpEnabled(true);
    int dropDownStyle = R.attr.actionDropDownStyle;

    ArrayAdapter<String> someAdapter = new ArrayAdapter<String>(getSherlockActivity()
            .getSupportActionBar().getThemedContext(), R.layout.sherlock_spinner_dropdown_item,
            new String[] {
                    "Last 7 days", "Last month", "Last 6 months", "Last year"
            });

    IcsSpinner mySpinner = new IcsSpinner(getActivity(), null, dropDownStyle);
    mySpinner.setAdapter(someAdapter);
    mySpinner.setOnItemSelectedListener(new IcsAdapterView.OnItemSelectedListener() {

        @Override
        public void onItemSelected(IcsAdapterView<?> parent, View view, int position, long id) {
            switch (position) {
                //do stuff
            }

        }

        @Override
        public void onNothingSelected(IcsAdapterView<?> parent) {
            // simulate a click on the first item of the spinner
            //do stuff

        }

    });
    bar.setCustomView(mySpinner);
    bar.setDisplayShowCustomEnabled(true);

显示如下:

第一个标签显示 2.3.x 中的 ics 微调器

但是下一个选项卡需要在 ActionBar 中有 2 个 ICS 微调器。(在使用 ABS 之前,我在 Activity 中有一个微调器,第二个微调器的选项位于标准选项菜单中。)

当我尝试添加第二个 CustomView 时,它会覆盖(替换?过度绘制?)第一个(我在第二个片段中添加两个,具有不同的名称),如下所示:

第二个选项卡仅显示 1 个微调器

ActionBar 中是否有可能有 2 个自定义视图,或者我是在吠叫错误的树吗?那么,如何在 ActionBar 中实现 2 个 ICS 微调器?

4

1 回答 1

0

根据之前的评论:

为了添加多个视图,您应该能够将它们包装在一个容器中,然后将该容器设置为ActionBar. 即水平LinearLayout听起来是个不错的选择。

于 2013-05-01T00:07:58.837 回答