android - How to get Support Action Bar inside a Master/Detail Fragment to set NAVIGATION_MODE_TABS? -
right have typical master/detail pattern, inside detail area supposed display kind of tabs structure viewpager in order implement swipe functionality change between tabs.
in single-pane-mode (when using devices) inside detail area, deploy areadetailactivity. inside of activity call supportactionbar (v7), set navigation mode, , set tabs, this:
public class areadetailactivity extends actionbaractivity implements actionbar.tablistener { private viewpageradapter viewpageradapter; private viewpager viewpager; @suppresswarnings("deprecation") @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview( r.layout.view_pager ); string idtipoareaactual = getintent().getstringextra( areadetailfragment.arg_item_id ); final actionbar actionbar = getsupportactionbar(); actionbar.setnavigationmode( actionbar.navigation_mode_tabs ); //adapter returns selected fragment viewpageradapter = new viewpageradapter( this, idtipoareaactual, getsupportfragmentmanager() ); viewpager = (viewpager) findviewbyid( r.id.view_pager ); viewpager.setadapter( viewpageradapter ); viewpager.setonpagechangelistener( new viewpager.simpleonpagechangelistener(){ @override public void onpageselected( int position ){ actionbar.setselectednavigationitem( position ); } }); actionbar.addtab( actionbar.newtab().settext("tab1").settablistener(this) ); actionbar.addtab( actionbar.newtab().settext("tab2").settablistener(this) ); } @override public void ontabreselected(tab tab, fragmenttransaction fragmenttransaction) { } @override public void ontabselected(tab tab, fragmenttransaction fragmenttransaction) { viewpager.setcurrentitem( tab.getposition() ); } @override public void ontabunselected(tab arg0, fragmenttransaction arg1){ } } the above code works perfectly, need way implement same functionality in two-pane-mode (actually tablet screen). in two-pane detail area deploys fragment, need call support action bar , implements swipe functionality using viewpager, when cast actionbar areadetailactivity (thet extends actionbaractivity), shows casting error. areadetailfragment displayed in two-pane-mode:
public class areadetailfragment extends fragment implements actionbar.tablistener { private activity activity; private viewpageradapter viewpageradapter; private viewpager viewpager; public areadetailfragment( activity activity ) { this.activity = activity; } @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); sethasoptionsmenu( true ); } @override public void oncreateoptionsmenu(menu menu, menuinflater menuinflater){ super.oncreateoptionsmenu(menu, menuinflater); menuinflater.inflate(r.menu.ccmaction_bar, menu); } @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view view = inflater.inflate( r.layout.view_pager, container, false ); return view; } @override public void onviewcreated(view view, bundle savedinstancestate){ super.onviewcreated(view, savedinstancestate); string idtipoareaactual = getarguments().getstring( areadetailfragment.arg_item_id ); final actionbar actionbar = ( (areadetailactivity) getactivity()).getsupportactionbar(); actionbar.setnavigationmode( actionbar.navigation_mode_tabs ); viewpageradapter = new viewpageradapter( getactivity().getapplicationcontext(), idtipoareaactual, getchildfragmentmanager() ); viewpager = (viewpager) view.findviewbyid( r.id.view_pager ); viewpager.setadapter( viewpageradapter ); viewpager.setonpagechangelistener( new viewpager.simpleonpagechangelistener(){ @override public void onpageselected( int position ){ actionbar.setselectednavigationitem( position ); } }); } @override public void ontabreselected(tab tab, fragmenttransaction fragmenttransaction) { } @override public void ontabselected(tab tab, fragmenttransaction fragmenttransaction) { viewpager.setcurrentitem( tab.getposition() ); } @override public void ontabunselected(tab arg0, fragmenttransaction arg1){ } } any ideas??? time!!!
nice tutorial swipe/tap/pages: http://indyvision.net/2014/08/android-tutorial-screen-with-tabs-and-swipe-part-i/
technical information action bar: http://developer.android.com/guide/topics/ui/actionbar.html
un buen tutorial sobre swipe/tap/pages: http://indyvision.net/2014/08/android-tutorial-screen-with-tabs-and-swipe-part-i/
información técnica sobre action bar: http://developer.android.com/guide/topics/ui/actionbar.html
Comments
Post a Comment