Realizing a tab navigation inside an ActionBar navigation.

旧城冷巷雨未停 提交于 2019-12-10 19:29:36

问题


Heyho. I'm trying to realize a tab navigation inside an ActionBar navigation (with fragments), but i can't get it work! Is this possible? It would be curious if not...

.

This is what i already got:

MainActivity.java

...
import android.app.Fragment;
import android.app.FragmentTransaction;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ActionBar bar = getActionBar();
        bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        Fragment fragmentA = new FragmentA();
        ActionBar.Tab tabFragmentA = bar.newTab().setText("FragmentA");   
        tabFragmentA.setTabListener(new MyTabListener(fragmentA));
        bar.addTab(tabFragmentA);

        Fragment fragmentB = new FragmentB();
        ActionBar.Tab tabFragmentB = bar.newTab().setText("FragmentB");   
        tabFragmentB.setTabListener(new MyTabListener(fragmentB));
        bar.addTab(tabFragmentB);

        bar.setDisplayShowTitleEnabled(false); // remove top title bar
        bar.setDisplayShowHomeEnabled(false); 
    }

    public class MyTabListener implements TabListener {

        private Fragment fragment;

        public MyTabListener(Fragment fragment) {
            this.fragment = fragment;
        }

        @Override
        public void onTabSelected(Tab arg0, FragmentTransaction ft) {
            ft.replace(R.id.fragmentContainer, fragment);   
        }

        @Override
        public void onTabUnselected(Tab arg0, FragmentTransaction ft) {
        }

        @Override
        public void onTabReselected(Tab arg0, FragmentTransaction ft) {
        }
    }
}

I tried out the FragmentTabHost from the v4 support api, but when I am using this one I get a classcasterror in the MainActivity when I want to instantiate the Fragment. When I also change the Fragment import in the MainActivity to the support api, my tablistener isn't working anymore. So... what can I do? Any other suggestions?

FragmentA.java

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTabHost;

public class FragmentA extends Fragment {

    @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        View view = inflater.inflate(R.layout.fragment_a, container, false);

        FragmentTabHost mTabHost = new FragmentTabHost(getActivity());
        mTabHost.setup(getActivity(), getChildFragmentManager(), R.id.fragmentAContainer);

        return view;
    }

}

Thank you for help!

来源:https://stackoverflow.com/questions/16583368/realizing-a-tab-navigation-inside-an-actionbar-navigation

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!