关于ActionBarActivity在进行替换Fragment时的问题

分类:我的代码 标签:技术

关于ActionBarActivity在进行替换Fragment时的问题
最近一直在使用ActionBarActivity来进行activity开发
ActionBarActivity继承自FragmentActivity,
可以同时支持
android.app.Fragment

android.support.v4.app.Fragment
但是在对Fragment的展示有不同。
如果直接使用FragmentActivity在添加Fragment的时候可以直接使用
FragmentTransaction.replace(android.R.id.content, Fragment);
但是在ActionBarActivity的时候就遇到了问题 特别是在添加
android.app.Fragment的时候,会出现Fragment不显示或者不正常显示
<点击阅读更多>
于是就有如下代码片段:

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.ActionBarActivity;
/**
 * xActivity is a custom parent Activity class
 * which can replace Fragment with replaceFragment()
 * Created by Houfukude on 03-13.
 */
public abstract class xActivity extends ActionBarActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.only_framelayout);
    }

    protected void replaceFragment(android.app.Fragment fragment) {
        android.app.FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
        fragmentTransaction.replace(getFragmentID(), fragment);
        fragmentTransaction.commitAllowingStateLoss();
    }

    protected void replaceFragment(Fragment fragment) {
        FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
        fragmentTransaction.replace(getFragmentID(), fragment);
        fragmentTransaction.commitAllowingStateLoss();
    }

    protected int getFragmentID() {
        //
        //return android.R.id.content;
        //this R.id.frameLayout is comes from R.layout.only_framelayout
        //or override this function to  return other view ID
        return R.id.frameLayout;
    }
}
only_framelayout.xml文件就只有一个FrameLayout 就不贴代码了
把这个作为父类就可以快速展示任意Fragment了无论是
android.app.Fragment
还是
android.support.v4.app.Fragment
同时还可以通过重写getFragmentID()方法来达到替换任意view的目的
自我感觉还不错吧 =。=
-----------------我是蛋疼的分割线-----------------
好吧 好久没更新博客了 一直都在剁手
更新一发!证明自己还活着
你可能还会对下列文章感兴趣:

0条评论 你不想来一发么↓

    想说点什么呢?

    您需要登录您的Google账号才能进行评论。