zoukankan      html  css  js  c++  java
  • Android TabHost切换选项卡实现数据实时刷新

    手机界面大小有限,使用TabHost可以达到在一个Activity中放入多个容器(界面)的效果。但存在一个问题是,当数据信息在一个容器(界面)中有所改变时,需要在用户切换选项卡到其他容器(界面)的时候实时刷新数据。

    如图,在”发布板报“页面发布新的板报,当用户点击“浏览板报”或者“管理板报”选项卡时要刷新数据——显示出刚刚发布的板报。

    解决问题的关键在于对选项卡修改事件的监听,根据Tab ID来调用相应的方法。

    核心代码:

    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            // ---------------------------Tab布局设置---------------------------------------
            final TabHost tabHost = getTabHost();
            // 设置使用TabHost布局
            LayoutInflater.from(this).inflate(R.layout.highlogined,
                    tabHost.getTabContentView(), true);
            // 添加第一个标签页
            tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("浏览板报")
                    .setContent(R.id.tab01));
            // 添加第二个标签页
            tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("发布板报")
                    .setContent(R.id.tab02));
            // 添加第三个标签页
            tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("管理板报")
                    .setContent(R.id.tab03));
            int width = 45; // 设置选项卡的高度和宽度
            int height = 48;
            TabWidget tabWidget = tabHost.getTabWidget();
            for (int i = 0; i < tabWidget.getChildCount(); i++) {
                // 设置高度、宽度,不过宽度由于设置为fill_parent,在此对它没效果
                tabWidget.getChildAt(i).getLayoutParams().height = height;
                tabWidget.getChildAt(i).getLayoutParams().width = width;
            }
            // 设置监听器,实现数据实时刷新
            tabHost.setOnTabChangedListener(new OnTabChangeListener() {
                public void onTabChanged(String tabId) {
                    if (tabId.equals("tab1")) {
                        getContents(); // 得到浏览所有板报的方法
                    } else if (tabId.equals("tab2")) {
                    } else if (tabId.equals("tab3")) {
                        lookOwnBoard(); // 得到浏览本人发布得板报的方法
                    }
                }
            });
    }
  • 相关阅读:
    windows本地文件搜索神器 Everything 为什么速度这么快?
    Electron构建跨平台应用
    「前端进阶」高性能渲染十万条数据(虚拟列表)
    Chrome开发者工具之JavaScript内存分析
    网页性能管理详解
    TCP-IP详解:滑动窗口(Sliding Window)
    滑动窗口
    流量控制(滑动窗口)和 拥塞控制(拥塞控制的工作过程)
    详解 Git 大文件存储(Git LFS)
    TCP流量控制
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/4223359.html
Copyright © 2011-2022 走看看