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