• getSupportFragmentManager要用在FragmentActivity及其子类中


    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

  • 相关阅读:
    卷一第十、十一、十二、十三、十四、十五章为广域网技术,暂停学习,先学习好局域网
    卷一第九章:WLAN
    卷一第八章:以太网技术
    卷一第七章:局域网概述
    卷一第六章:网络设备基本调试
    卷一第五章:网络设备文件管理
    二层、三层交换机介绍及转发原理
    Codeforces Round #641 (Div. 1)
    机器学习
    机器学习
  • 原文地址:https://www.cnblogs.com/zhaocundang/p/5379500.html
Copyright © 2020-2023  润新知