Android Fragment contributes to the Action Bar when not on the screen -


if dynamically add fragment (using fragmentmanager) container defined in landscape xml switch portrait, dynamically injected fragment still exists. contributing action bar though not visible. way / design prevent happening?

i have tried using isvisible in oncreateoptionsmenu of fragment causes issues on android versions because oncreateoptionsmenu called before oncreateview results in false if fragment going visible current configuration.

note: not handling configuration myself. haven't specified configchanges in manifest , not overriding onconfigurationchanged.

activity:

// inject detail fragment fragment detailfragment = getsupportfragmentmanager().findfragmentbyid(r.id.detail_container); if(detailfragment == null)     getsupportfragmentmanager().begintransaction().replace(r.id.detail_container, detailfragment.newinstance(id)).commit();  // inject master fragment if(findviewbyid(r.id.master_container) != null) {     masterdetail = true;     fragment listfragment = getsupportfragmentmanager().findfragmentbyid(r.id.master_container);     if(listfragment == null)         getsupportfragmentmanager().begintransaction().replace(r.id.master_container, listfragment.newinstance(position)).commit(); } 

activity portrait xml

<framelayout xmlns:android="http://schemas.android.com/apk/res/android"     android:id="@+id/detail_container"     android:layout_width="match_parent"     android:layout_height="match_parent"/> 

activity landscape xml

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:baselinealigned="false">  <framelayout     android:id="@+id/master_container"     android:layout_width="0dp"     android:layout_height="match_parent"     android:layout_weight="1"/>  <framelayout     android:id="@+id/detail_container"     android:layout_width="0dp"     android:layout_height="match_parent"     android:layout_weight="2"/> </linearlayout> 

the model i'd follow based on explanation.

public class myactivity extends activity {      boolean mmultipane = false;      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);          framelayout mastercontainer = (framelayout) findviewbyid(r.id.master_container);         if (mastercontainer != null)             mmultipane = true;          ...     } } 

from on in activity can use mmultipane variable change behaviour including changing how options menu set (just have 2 different menu.xml files or add / remove menu items depending on mode you're in).


Comments

Popular posts from this blog

javascript - Jquery show_hide, what to add in order to make the page scroll to the bottom of the hidden field once button is clicked -

javascript - Highcharts multi-color line -

javascript - Enter key does not work in search box -