码迷,mamicode.com
首页 > 其他好文 > 详细

getSupportFragmentManager要用在FragmentActivity及其子类中

时间:2016-04-11 20:41:27      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

getSupportFragmentManager要用在FragmentActivity及其子类中!!

 

关于安卓抽屉导航!!

 * 自定义侧边栏

 

技术分享

 

 

 

技术分享

 

      创建一个Fragment:CarlozLibFragment.java,并为其创建一个布局carloz_lib_webview.xml,内部有一个WebView控件,顺便在AndroidManifest.xml中添加Intent访问权限;在CarlozLibFragment中重写onCreateView方法,让WebView访问我的个人网站(http://carloz.duapp.com);

 

技术分享
public class CarlozLibFragment extends Fragment {
    private String TAG = "CARLOZ";

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        View root = inflater.inflate(R.layout.carloz_lib_webview, container, false);
        
        WebView wv =(WebView)root.findViewById(R.id.wv);
        Log.d(TAG, "load url: carloz lib");
        wv.loadUrl("http://carloz.duapp.com");
        
        return root;
    }
}
技术分享

 

      将NavigationDrawerFragment.java 中 onCreateView中ListView相关内容删除,用自定义布局 diy_slider_content.xml (目录res/layout)替换;diy_slider_content中定义了一个按钮,用来打开刚刚创建的CarlozLibFragment;

 

技术分享
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View root = inflater.inflate(R.layout.diy_slider_content, container, false);
    
    root.findViewById(R.id.btnJump).setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (mDrawerLayout != null) {
                // 隐藏侧边栏
                mDrawerLayout.closeDrawer(mFragmentContainerView);
            }
            if(mCallbacks != null) {
                mCallbacks.onGotoCarlozLibClicked();
            }
        }
    });
    
    return root;
}
技术分享

 

      onGotoCarlozLibClicked()这个接口是自定义接口,在 静态接口 NavigationDrawerCallbacks 中新增定义

 

技术分享
public static interface NavigationDrawerCallbacks {
    /**
     * Called when an item in the navigation drawer is selected.
     */
    void onNavigationDrawerItemSelected(int position);
    
    // 通过回调传给主界面
    void onGotoCarlozLibClicked();
}
技术分享

 

    需要在主界面SliderActivity中实现该回调方法, 因为主界面实现了 NavigationDrawerFragment.NavigationDrawerCallbacks 接口

 

技术分享
@Override
public void onGotoCarlozLibClicked() {
    // 需要实现 NavigationDrawerFragment.java Callback中新增的方法
    // 在容器 container 中添加 fragment CarlozLibFragment
    getSupportFragmentManager().beginTransaction()
            .replace(R.id.container, new CarlozLibFragment())
            .commit();
}
技术分享

 

运行结果如下:

 

技术分享

 

这里引用:http://www.cnblogs.com/carlo/p/4726719.html

 

getSupportFragmentManager要用在FragmentActivity及其子类中

标签:

原文地址:http://www.cnblogs.com/xiaobo-Linux/p/5379500.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!