java - Actionbar.removealltabs() 留下标签空间

标签 java android layout tabs android-actionbar

Actionbar.removealltabs 删除我所有的标签。但是,用于容纳选项卡的剩余空间仍然存在。因此,我的操作栏看起来像一个非常高的操作栏,下半部分是空的。

将支持操作栏与 appcompatactivity 结合使用。

我已经尝试在我的 fragment 和 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

这是我创建标签的 fragment 。

@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 预先存在的修改。

@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);

最佳答案

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

关于java - Actionbar.removealltabs() 留下标签空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54745846/

相关文章:

css - 使用 Sticky Footer 使 2 列布局中的左列占据 100% 高度

java - 如何使用runner来运行FutureTask<V>中的Callable

java - 如何使用 Spring 轻松使用 JSP 页面作为电子邮件模板?

android - LinearLayout 中的 LinearLayout 具有 3 个元素 - 一个左对齐,一个居中,一个右对齐

android - BroadcastReceiver 中的 ApplicationContext

android - 我想在将一个 View 拖放到另一个 View 后开始新的 Activity。在 switch case 中我该怎么做?

java - 如何将 View 放置在屏幕上的任意位置?

java - ExecutorService 似乎在 UI 上运行线程?

java - 什么应该使用HashMap或HashSet?

android - 显示不是来自 Activity 的对话框