List of usage examples for android.support.v4.app FragmentTransaction detach
public abstract FragmentTransaction detach(Fragment fragment);
From source file:org.videolan.vlc.gui.MainActivity.java
@Override protected void onCreate(Bundle savedInstanceState) { if (!LibVlcUtil.hasCompatibleCPU(this)) { Log.e(TAG, LibVlcUtil.getErrorMsg()); Intent i = new Intent(this, CompatErrorActivity.class); startActivity(i);/*from ww w . j av a2 s . c o m*/ finish(); super.onCreate(savedInstanceState); return; } /* Get the current version from package */ PackageInfo pinfo = null; try { pinfo = getPackageManager().getPackageInfo(getPackageName(), 0); } catch (NameNotFoundException e) { Log.e(TAG, "package info not found."); } if (pinfo != null) mVersionNumber = pinfo.versionCode; /* Get settings */ mSettings = PreferenceManager.getDefaultSharedPreferences(this); /* Check if it's the first run */ mFirstRun = mSettings.getInt(PREF_FIRST_RUN, -1) != mVersionNumber; if (mFirstRun) { Editor editor = mSettings.edit(); editor.putInt(PREF_FIRST_RUN, mVersionNumber); editor.commit(); } try { // Start LibVLC Util.getLibVlcInstance(); } catch (LibVlcException e) { e.printStackTrace(); Intent i = new Intent(this, CompatErrorActivity.class); i.putExtra("runtimeError", true); i.putExtra("message", "LibVLC failed to initialize (LibVlcException)"); startActivity(i); finish(); super.onCreate(savedInstanceState); return; } super.onCreate(savedInstanceState); /*** Start initializing the UI ***/ /* Enable the indeterminate progress feature */ requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); // Set up the sliding menu setContentView(R.layout.sliding_menu); mMenu = (SlidingMenu) findViewById(R.id.sliding_menu); changeMenuOffset(); View v_main = LayoutInflater.from(this).inflate(R.layout.main, null); mMenu.setContent(v_main); View sidebar = LayoutInflater.from(this).inflate(R.layout.sidebar, null); final ListView listView = (ListView) sidebar.findViewById(android.R.id.list); listView.setFooterDividersEnabled(true); mSidebarAdapter = new SidebarAdapter(); listView.setAdapter(mSidebarAdapter); mMenu.setMenu(sidebar); /* Initialize UI variables */ mInfoLayout = v_main.findViewById(R.id.info_layout); mInfoProgress = (ProgressBar) v_main.findViewById(R.id.info_progress); mInfoText = (TextView) v_main.findViewById(R.id.info_text); /* Set up the action bar */ mActionBar = getSupportActionBar(); mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); mActionBar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE); mActionBar.setDisplayHomeAsUpEnabled(true); /* Add padding between the home button and the arrow */ ImageView home = (ImageView) findViewById(Util.isHoneycombOrLater() ? android.R.id.home : R.id.abs__home); if (home != null) home.setPadding(20, 0, 0, 0); /* Set up the sidebar click listener */ listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { SidebarAdapter.SidebarEntry entry = (SidebarEntry) listView.getItemAtPosition(position); Fragment current = getSupportFragmentManager().findFragmentById(R.id.fragment_placeholder); if (current == null || current.getTag().equals(entry.id)) { /* Already selected */ mMenu.showContent(); return; } /* * Clear any backstack before switching tabs. This avoids * activating an old backstack, when a user hits the back button * to quit */ for (int i = 0; i < getSupportFragmentManager().getBackStackEntryCount(); i++) { getSupportFragmentManager().popBackStack(); } /** * Do not move this getFragment("audio")! * This is to ensure that if audio is not already loaded, it * will be loaded ahead of the detach/attach below. * Otherwise if you add() a fragment after an attach/detach, * it will take over the placeholder and you will end up with * the audio fragment when some other fragment should be there. */ Fragment audioFragment = getFragment("audio"); FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.detach(current); ft.attach(getFragment(entry.id)); ft.commit(); mCurrentFragment = entry.id; /* * Set user visibility hints to work around weird Android * behaviour of duplicate context menu events. */ current.setUserVisibleHint(false); getFragment(mCurrentFragment).setUserVisibleHint(true); // HACK ALERT: Set underlying audio browser to be invisible too. if (current.getTag().equals("tracks")) audioFragment.setUserVisibleHint(false); mMenu.showContent(); } }); /* Set up the mini audio player */ // TODO use mini player // mAudioPlayer = new AudioMiniPlayer(); mAudioController = MediaServiceController.getInstance(); // mAudioPlayer.setAudioPlayerControl(mAudioController); // mAudioPlayer.update(); // // getSupportFragmentManager().beginTransaction() // .replace(R.id.audio_mini_player, mAudioPlayer) // .commit(); /* Show info/alpha/beta Warning */ if (mSettings.getInt(PREF_SHOW_INFO, -1) != mVersionNumber) showInfoDialog(); else if (mFirstRun) { /* * The sliding menu is automatically opened when the user closes * the info dialog. If (for any reason) the dialog is not shown, * open the menu after a short delay. */ final Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { mMenu.showMenu(); } }, 500); } /* Prepare the progressBar */ IntentFilter filter = new IntentFilter(); filter.addAction(ACTION_SHOW_PROGRESSBAR); filter.addAction(ACTION_HIDE_PROGRESSBAR); filter.addAction(ACTION_SHOW_TEXTINFO); registerReceiver(messageReceiver, filter); /* Reload the latest preferences */ reloadPreferences(); }
From source file:im.ene.lab.attiq.ui.activities.HomeActivity.java
private void showHistory() { final FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); // 1. detach current Home fragment if there is mCurrentFragmentName = setHomeFragmentName(mMyProfile); if ((mHomeFragment = getSupportFragmentManager() // .findFragmentByTag(mCurrentFragmentName)) != null) { transaction.detach(mHomeFragment); }//from ww w. jav a2 s . c om // 2. attach or create History fragment if ((mHistoryFragment = getSupportFragmentManager().findFragmentByTag(FRAGMENT_HISTORY)) != null) { transaction.attach(mHistoryFragment); } else { mHistoryFragment = HistoryFragment.newInstance(); transaction.replace(R.id.container, mHistoryFragment, FRAGMENT_HISTORY); } // 3. commit transaction transaction.commit(); }
From source file:co.vmob.sample.FragmentTabHost.java
private FragmentTransaction doTabChanged(String tabId, FragmentTransaction ft) { TabInfo newTab = null;// w ww. java2 s .c om FragmentTransaction transaction = ft; for (int i = 0; i < mTabs.size(); i++) { final TabInfo tab = mTabs.get(i); if (tab.tag.equals(tabId)) { newTab = tab; } } if (newTab == null) { throw new IllegalStateException("No tab known for tag " + tabId); } if (mLastTab != newTab) { if (transaction == null) { transaction = mFragmentManager.beginTransaction(); } if (mLastTab != null) { if (mLastTab.fragment != null) { transaction.detach(mLastTab.fragment); } } if (newTab.fragment == null) { newTab.fragment = Fragment.instantiate(mContext, newTab.clss.getName(), newTab.args); transaction.add(android.R.id.tabcontent, newTab.fragment, newTab.tag); } else { transaction.attach(newTab.fragment); } mLastTab = newTab; } return transaction; }
From source file:com.dreamsocket.widget.ViewStack.java
protected ViewStack doAddTransaction(int p_index, Fragment p_fragment, String p_tag) { FragmentTransaction ft = this.m_fragMgr.beginTransaction(); int newIndex = this.getIndexValue(p_index, 0); String tag = UUID.randomUUID().toString(); this.m_fragEntries.add(newIndex, new ViewStackEntry(tag, p_tag)); if (newIndex < this.m_index && this.length() > 0) { this.m_index++; }/*from w w w .j a v a 2s . co m*/ ft.add(this.m_containerViewID, p_fragment, tag); ft.detach(p_fragment); ft.commit(); return this; }
From source file:com.ai.eve.lenovo.widget.FragmentTabHost.java
private FragmentTransaction doTabChanged(String tabId, FragmentTransaction ft) { TabInfo newTab = null;// ww w . j a v a 2 s . co m for (int i = 0; i < mTabs.size(); i++) { TabInfo tab = mTabs.get(i); if (tab.tag.equals(tabId)) { newTab = tab; } } if (newTab == null) { throw new IllegalStateException("No tab known for tag " + tabId); } if (mLastTab != newTab) { if (ft == null) { ft = mFragmentManager.beginTransaction(); } if (mLastTab != null) { if (mLastTab.fragment != null) { ft.detach(mLastTab.fragment); } } if (newTab != null) { if (newTab.fragment == null) { newTab.fragment = Fragment.instantiate(mContext, newTab.clss.getName(), newTab.args); ft.add(mContainerId, newTab.fragment, newTab.tag); } else { ft.attach(newTab.fragment); } } mLastTab = newTab; } return ft; }
From source file:com.example.fragmentdemo.FragmentTabHost.java
private FragmentTransaction doTabChanged(String tabId, FragmentTransaction ft) { TabInfo newTab = null;/*from ww w .j av a2 s. co m*/ for (int i = 0; i < mTabs.size(); i++) { TabInfo tab = mTabs.get(i); if (tab.tag.equals(tabId)) { newTab = tab; } } if (newTab == null) { throw new IllegalStateException("No tab known for tag " + tabId); } if (mLastTab != newTab) { if (ft == null) { ft = mFragmentManager.beginTransaction(); } if (mLastTab != null) { if (mLastTab.fragment != null) { ft.detach(mLastTab.fragment); } } if (newTab != null) { if (newTab.fragment == null) { newTab.fragment = Fragment.instantiate(mContext, newTab.clss.getName(), newTab.args); ft.add(mContainerId, newTab.fragment, newTab.tag); } else { ft.attach(newTab.fragment); } } mLastTab = newTab; } return ft; }
From source file:com.devilyang.musicstation.widget.FragmentTabHost.java
private FragmentTransaction doTabChanged(String tabId, FragmentTransaction ft) { TabInfo newTab = null;/*from w ww. jav a 2 s . c o m*/ for (int i = 0; i < mTabs.size(); i++) { TabInfo tab = mTabs.get(i); if (tab.tag.equals(tabId)) { newTab = tab; } } if (newTab == null) { throw new IllegalStateException("No tab known for tag " + tabId); } if (mLastTab != newTab) { if (ft == null) { ft = mFragmentManager.beginTransaction(); } if (mLastTab != null) { if (mLastTab.fragment != null) { ft.detach(mLastTab.fragment); } } if (newTab != null) { if (newTab.fragment == null) { newTab.fragment = Fragment.instantiate(mContext, newTab.clss.getName(), newTab.args); ft.add(mContainerId, newTab.fragment, newTab.tag); } else { ft.attach(newTab.fragment); //???attach?, 2014-7-9 ft.show(newTab.fragment); } } mLastTab = newTab; } return ft; }
From source file:im.neon.activity.VectorRoomDetailsActivity.java
/** * Called when a tab exits the selected state. * * @param tab The tab that was unselected * @param ft A {@link FragmentTransaction} for queuing fragment operations to execute * during a tab switch. This tab's unselected and the newly selected tab's select * will be executed in a single transaction. This FragmentTransaction does not *///from w w w. j a v a2 s . c o m @Override public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) { Bundle tabHolder = (Bundle) tab.getTag(); String fragmentTag = tabHolder.getString(KEY_FRAGMENT_TAG, ""); Log.d(LOG_TAG, "## onTabUnselected() FragTag=" + fragmentTag); // save tab UI context before leaving the tab... saveUiTabContext(tab); if (fragmentTag.equals(TAG_FRAGMENT_PEOPLE_ROOM_DETAILS)) { if (null != mRoomDetailsMembersFragment) { ft.detach(mRoomDetailsMembersFragment); } } else if (fragmentTag.equals(TAG_FRAGMENT_SETTINGS_ROOM_DETAIL)) { onTabUnselectedSettingsFragment(); } else if (fragmentTag.equals(TAG_FRAGMENT_FILES_DETAILS)) { if (null != mSearchFilesFragment) { mSearchFilesFragment.cancelCatchingRequests(); ft.detach(mSearchFilesFragment); } } else { Log.w(LOG_TAG, "## onTabUnselected() unknown tab selected!!"); } }
From source file:com.suning.mobile.ebuy.lottery.utils.view.FragmentTabHostAllowLoseState.java
private FragmentTransaction doTabChanged(String tabId, FragmentTransaction ft) { TabInfo newTab = null;/*from www. j av a2 s.c om*/ for (int i = 0; i < mTabs.size(); i++) { TabInfo tab = mTabs.get(i); if (tab.tag.equals(tabId)) { newTab = tab; } } if (newTab == null) { throw new IllegalStateException("No tab known for tag " + tabId); } if (mLastTab != newTab) { if (ft == null) { ft = mFragmentManager.beginTransaction(); } if (mLastTab != null) { if (mLastTab.fragment != null) { ft.detach(mLastTab.fragment); } } if (newTab.fragment == null) { newTab.fragment = Fragment.instantiate(mContext, newTab.clss.getName(), newTab.args); ft.add(mContainerId, newTab.fragment, newTab.tag); } else { ft.attach(newTab.fragment); } mLastTab = newTab; } return ft; }
From source file:com.androzic.MainActivity.java
private void selectItem(int position) { if (mDrawerAdapter.getSelectedItem() == position) return;//from www .j av a 2s . c om DrawerItem item = mDrawerItems.get(position); // Actions if (item.type == DrawerItem.ItemType.INTENT) { if (position > 0) startActivity(item.intent); } // Fragments else if (item.type == DrawerItem.ItemType.FRAGMENT) { FragmentManager fm = getSupportFragmentManager(); if (fm.getBackStackEntryCount() > 0) { fm.popBackStackImmediate(0, FragmentManager.POP_BACK_STACK_INCLUSIVE); } FragmentTransaction ft = fm.beginTransaction(); Fragment parent = fm.findFragmentById(R.id.content_frame); if (parent != null) { ft.detach(parent); } Fragment fragment = fm.findFragmentByTag(item.name); if (fragment != null) { ft.attach(fragment); } else { ft.add(R.id.content_frame, item.fragment, item.name); } ft.commit(); // update selected item and title, then close the drawer updateDrawerUI(item, position); } else if (item.type == DrawerItem.ItemType.ACTION) { Log.e(TAG, "ACTION"); runOnUiThread(item.action); } mDrawerLayout.closeDrawer(mDrawerList); }