Example usage for android.support.v4.app FragmentTransaction detach

List of usage examples for android.support.v4.app FragmentTransaction detach

Introduction

In this page you can find the example usage for android.support.v4.app FragmentTransaction detach.

Prototype

public abstract FragmentTransaction detach(Fragment fragment);

Source Link

Document

Detach the given fragment from the UI.

Usage

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);
}