ActionBar中有多个自定义视图

时间:2013-04-30 21:25:32

标签: android actionbarsherlock

我终于设法使用此代码将ICS样式的微调器变为我的选项卡式导航夏洛特片段的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);

显示如下:

first tab showing ics spinner in 2.3.x

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

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

second tab showing just 1 spinner

是否可以在ActionBar中有2个CustomViews,或者我是在咆哮错误的树?那么,如何在ActionBar中实现2个ICS微调器?

1 个答案:

答案 0 :(得分:0)

根据之前的评论:

为了添加多个视图,您应该只能将它们包装在容器中,然后将该容器设置为ActionBar的自定义视图。即水平LinearLayout听起来像个好人。