下面列出了android.support.v4.app.Fragment#equals ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* 用Fragment替换内容区
*
* @param targetFragment 用来替换的Fragment
*/
public void changeFragment(Fragment targetFragment) {
if (targetFragment.equals(currentFragment)) {
return;
}
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
if (!targetFragment.isAdded()) {
transaction.add(R.id.main_body, targetFragment, targetFragment.getClass()
.getName());
}
if (targetFragment.isHidden()) {
transaction.show(targetFragment);
}
if (currentFragment != null && currentFragment.isVisible()) {
transaction.hide(currentFragment);
}
currentFragment = targetFragment;
transaction.commit();
}
public void updateLib() {
if (mPreventRescan){
mPreventRescan = false;
return;
}
FragmentManager fm = getSupportFragmentManager();
Fragment current = fm.findFragmentById(R.id.fragment_placeholder);
if (current != null && current instanceof IRefreshable)
((IRefreshable) current).refresh();
else
MediaLibrary.getInstance().scanMediaItems();
Fragment fragment = fm.findFragmentByTag(SidebarAdapter.SidebarEntry.ID_AUDIO);
if (fragment != null && !fragment.equals(current)) {
((MediaBrowserFragment)fragment).clear();
}
fragment = fm.findFragmentByTag(SidebarAdapter.SidebarEntry.ID_VIDEO);
if (fragment != null && !fragment.equals(current)) {
((MediaBrowserFragment)fragment).clear();
}
}
@SuppressLint("RestrictedApi")
private static String getIndex(Fragment fragment) {
String index;
if (fragment.getParentFragment() != null) {
index = getIndex(fragment.getParentFragment()) + "-";
} else {
index = "";
}
FragmentManager fragmentManager = fragment.getFragmentManager();
if (fragmentManager != null) {
List<Fragment> fragments = fragmentManager.getFragments();
if (fragments != null && !fragments.isEmpty()) {
for (int i = 0; i < fragments.size(); i++) {
if (fragment.equals(fragments.get(i))) {
index += i;
break;
}
}
}
}
return index;
}
@Override
public int getItemPosition(Object object) {
Fragment f = (Fragment) object;
for ( int i = 0; i < mOrder.length; i++ ) {
if ( f.equals(mOrder[i]) )
return i;
}
return POSITION_NONE;
}