首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Actionbar.removealltabs()在制表符后面留下空格

Actionbar.removealltabs()在制表符后面留下空格
EN

Stack Overflow用户
提问于 2019-02-18 19:05:38
回答 2查看 27关注 0票数 2

Actionbar.removealltabs会删除我所有的选项卡。但是,用于容纳选项卡的剩余空间仍然存在。结果,我的动作栏看起来就像一个很高的动作栏,下半部分是空的。

将support actionbar与appcompatactivity一起使用。

我尝试在我的片段和Mainactivity中调用Actionbar.removealltabs ...同样的结果。

Tabs pre-destruction

Tabs Destroyed, leaving behind it's empty space

How it originally looked before adding tabs. This is my desired result

这是我创建选项卡的片段。

代码语言:javascript
复制
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    mViewPager = view.findViewById(R.id.reddit_search_pager);
    mActionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();

    setViewPager();
    setTabs();
}


public void setTabs() {
    mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    ActionBar.TabListener tabListener = new ActionBar.TabListener() {
        @Override
        public void onTabSelected(ActionBar.Tab tab, android.support.v4.app.FragmentTransaction ft) {
            mViewPager.setCurrentItem(tab.getPosition());
        }

        @Override
        public void onTabUnselected(ActionBar.Tab tab, android.support.v4.app.FragmentTransaction ft) {

        }

        @Override
        public void onTabReselected(ActionBar.Tab tab, android.support.v4.app.FragmentTransaction ft) {

        }
    };
    for (int i = 0; i < 3; i++) {
        String tabTitle = "";
        switch (i) {
            case 0:
                tabTitle = TAB_TITLE_SUBREDDITS;
                break;
            case 1:
                tabTitle = TAB_TITLE_POSTS;
                break;
            case 2:
                tabTitle = TAB_TITLE_USERS;
                break;
        }
        mActionBar.addTab(
                mActionBar.newTab()
                    .setText(tabTitle)
                    .setTabListener(tabListener));
        }
}

这是我对工具栏的主要MainActivity预先存在的修改。

代码语言:javascript
复制
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    NetworkingUtils myClass = new NetworkingUtils(this);

    ActionBar actionbar = getSupportActionBar();
    actionbar.setDisplayHomeAsUpEnabled(true);
    actionbar.setHomeAsUpIndicator(R.drawable.ic_action_menu);
EN

回答 2

Stack Overflow用户

发布于 2019-02-18 22:32:18

当我使用ListViews时,我通常使用适配器。对于适配器,每次在列表上进行新的更改时都必须调用yourAdapter.notifyDataSetChaged(),这样列表才能正常更新。也许这就是发生在你身上的事情,所以试着调用一些像我上面展示的方法,它可能会更新并清除空白空间。

票数 0
EN

Stack Overflow用户

发布于 2019-02-19 11:03:06

我通过使用另一种方式来修复它,如本视频中所述的Tablayout。https://www.youtube.com/watch?v=zQekzaAgIlQ。我不得不制作自己的工具栏,而不是默认的主题工具栏。

我不知道为什么Android建议在他们的官方网站上使用一种过时的、有缺陷的方式来实现标签页,而不是这样。事实上,Youtube视频中提供的TabLayout示例都是404未找到。

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

https://stackoverflow.com/questions/54745846

复制
相关文章

相似问题

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