首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >android底部栏在创建活动时设置默认选项卡

android底部栏在创建活动时设置默认选项卡
EN

Stack Overflow用户
提问于 2016-08-14 23:24:09
回答 2查看 1.9K关注 0票数 1

我自己尝试开发一个基于this tutorial的示例安卓应用程序,底部栏。

代码语言:javascript
复制
 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.thirdactivity);

        BottomBar bottomBar = BottomBar.attach(this, savedInstanceState);
        bottomBar.setItemsFromMenu(R.menu.bottom_menu, new OnMenuTabSelectedListener() {
            @Override
            public void onMenuItemSelected(int itemId) {
                 Intent myAct = new Intent();
            switch (itemId) {
                case R.id.item1:
                    myAct = new Intent(findViewById(itemId).getContext(), mainactivity.class);
                    break;
                case R.id.item2:
                    myAct = new Intent(findViewById(itemId).getContext(), secondactivity.class);
                    break;
                case R.id.item3:
                    myAct = new Intent(findViewById(itemId).getContext(), thirdactivity.class);
                    break;
            }
               startActivity(myAct);
            }
        });
    }

但是如何在创建活动时将第三个选项卡设置为默认值。上面的代码将第一个选项卡突出显示为选中状态,甚至在单击第一个选项卡时都没有监听。此外,以后的选项卡会打开相应的活动,但不会突出显示为当前选项卡。

编辑:自己也可以使用bottomBar.setDefaultTabPosition(desiredTabId);,它也能正常工作,但它占用的内存很大。修复方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-31 13:13:10

它可以通过使用startActivity() as来解决,

代码语言:javascript
复制
 BottomBar bottomBar = BottomBar.attach(this, savedInstanceState);

      bottomBar.setItemsFromMenu(R.menu.bottom_menu, new OnMenuTabSelectedListener() {
                @Override
                public void onMenuItemSelected(int itemId) {
                    Intent act = new Intent();
                    if (R.id.item1 == itemId) {
                        act = new Intent(findViewById(itemId).getContext(), act1.class);
                        startActivity(act);
                        overridePendingTransition(R.anim.open_translate, R.anim.close_scale);
                    }
                    if (R.id.item2 == itemId) {
                        act = new Intent(findViewById(itemId).getContext(), act2.class);
                    }
                    if (R.id.item3 == itemId) {
                        act = new Intent(findViewById(itemId).getContext(), act3.class);
                        startActivity(act);
                        overridePendingTransition(R.anim.open_translate, R.anim.close_scale);
                    }

                }

            });
            bottomBar.setDefaultTabPosition(2);

            bottomBar.setActiveTabColor("#F3C030");
票数 0
EN

Stack Overflow用户

发布于 2018-06-09 05:06:04

尝试在设置监听器之前设置默认选项卡

代码语言:javascript
复制
bottomBar.setDefaultTab(R.id.tab_default);
bottomBar.setOnTabSelectListener(this);

这适用于版本2.0.2

如果在默认选项卡之前设置监听程序,它将被调用两次。一次用于制表符位置0,然后用于您设置为默认值的任何内容,这通常不是所需的。

最好在创建bottombar之前设置默认选项卡,或者在自述文件中显示警告。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38943655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档