Android TabHost 中心 Activity 选项卡

标签 android center android-4.0-ice-cream-sandwich android-tabs

是否可以更改 Android 选项卡,如果您按下一个选项卡,它就会到达 TabHost 的中心。只有 3 个选项卡可见,无论有多少。就像在 Android 4.0 的 Google 音乐应用程序中一样! 如果是,你会怎么做?

谢谢!

最佳答案

我自己确实找到了答案。
如果其他人需要它,应该这样做:

    final HorizontalScrollView mHorizontalScrollView;
    float scale = getResources().getDisplayMetrics().density;
    final double tabWidth = (int) (150 * scale + 0.5f);

    for (int i = 0; i < tabHost.getTabWidget().getTabCount(); i++) {
        tabHost.getTabWidget().getChildTabViewAt(i).getLayoutParams().width = (int) tabWidth;
    }

    final double screenWidth = getWindowManager().getDefaultDisplay()
            .getWidth();
    mHorizontalScrollView = (HorizontalScrollView) findViewById(R.id.hscrollview);

    tabHost.setOnTabChangedListener(new OnTabChangeListener() {

        @Override
        public void onTabChanged(String tabId) {
            int nrOfShownCompleteTabs = ((int) (Math.floor(screenWidth
                    / tabWidth) - 1) / 2) * 2;
            int remainingSpace = (int) ((screenWidth - tabWidth - (tabWidth * nrOfShownCompleteTabs)) / 2);

            int a = (int) (tabHost.getCurrentTab() * tabWidth);
            int b = (int) ((int) (nrOfShownCompleteTabs / 2) * tabWidth);
            int offset = (a - b) - remainingSpace;

            mHorizontalScrollView.scrollTo(offset, 0);
        }
    });

关于Android TabHost 中心 Activity 选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9878785/

相关文章:

android - 在 Android 应用程序中使用 Appium 定位元素后如何水平滑动?

html - 无法在 CSS 中并排居中图像组(类图像)

android - 如何在 Android 上将 "Choose an action"更改为 "Complete action using"?

java - Bottomnavigationview强制换档模式

Android - 如何在点击通知应用程序且该应用程序已打开时不执行任何操作

css - 获取 CSS 元素以自动调整内容宽度,同时居中

html - 如何为居中 float 确认对话框设计 CSS?

android - 有人可以阐明这个 ANR 日志吗?

android - 在没有 bindAppWidgetId() 的情况下将小部件添加到启动器页面

Android-AudioRecord 在录音时有一些跳过节拍