Implementing a TabListener using the Support Library

前端 未结 5 1693
终归单人心
终归单人心 2020-12-14 02:45

I am trying to implement Tab Navigation, but I want to make sure people that have older versions of Android can still use my application.

The app in mind ATM is fai

5条回答
  •  一个人的身影
    2020-12-14 03:23

    actionBar = getActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    
    actionBar.setDisplayShowHomeEnabled(false);
    actionBar.setDisplayShowTitleEnabled(false);
    
    tabA = actionBar.newTab().setText("");
    tabB = actionBar.newTab().setText("");
    
    Fragment fragmentA = new AFragmentTab();
    Fragment fragmentB = new BFragmentTab();
    
    tabA.setTabListener(new MyTabsListener(fragmentA));
    tabB.setTabListener(new MyTabsListener(fragmentB));
    
    actionBar.addTab(tabA);
    actionBar.addTab(tabB);
    

    The tab listener is as follows:

    protected class MyTabsListener implements ActionBar.TabListener{
        private Fragment fragment;
    
        public MyTabsListener(Fragment fragment){
            this.fragment = fragment;
        }
        public void onTabSelected(Tab tab, FragmentTransaction ft){
            ft.add(R.id.layout2, fragment, null);
        }
        public void onTabReselected(Tab tab, FragmentTransaction ft) {
        }
        public void onTabUnselected(Tab tab, FragmentTransaction ft) {
            ft.remove(fragment);
        }
    }
    

    and then you make a class for each tab:

    public class BFragmentTab extends Fragment {
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            return inflater.inflate(R.layout.login, container, false);
        }
    }
    

    But keep in mind that the action bar isn't supported for android versions below 3.0 . If you want to use it in older versions I suggest you use actionBarSherlock Library.

提交回复
热议问题