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