閱讀696 返回首頁    go 阿裏雲 go 技術社區[雲棲]


ActionBar 值 addTab 的小提示

今天測試時偶然發現當程序中 addTab 後,會默認觸發第一個 tab 的 onTabSelected 事件方法


        ActionBar actionBar = mActivity.getSupportActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        // Tab 按鈕點擊事件
        MyTabListener listener = new MyTabListener();
        // 添加頁麵的 Tab 按鈕
        actionBar.addTab(actionBar.newTab()
                .setText(mActivity.getString(R.string.tab_index))
                .setTabListener(listener));
        actionBar.addTab(actionBar.newTab()
                .setText(mActivity.getString(R.string.tab_latest))
                .setTabListener(listener));
        actionBar.addTab(actionBar.newTab()
                .setText(mActivity.getString(R.string.tab_hot))
                .setTabListener(listener));
        actionBar.addTab(actionBar.newTab()
                .setText(mActivity.getString(R.string.tab_tag))
                .setTabListener(listener));


發現這個問題是因為我遇到了一個奇怪的順序問題:

在添加 Tab 之後還有 每個 tab 對應打開的 ViewPager 代碼,結果每次都提示 viewPager 為 null 空指針操作了,我鬱悶了好半天明明 視圖對象存在卻為空,後來發現原來在 addTab 的時候就會默認執行第一個 tab 的 onTabSelected 事件。

所以必須在 addTab 前寫上與其相關的其他代碼。




最後更新:2017-04-03 12:55:13

  上一篇:go AtomicInteger簡介
  下一篇:go linux查看文件夾大小、文件個數的方法