• App icon编程涉及的几个函数介绍

    NavigationDrawer的ActionBar设计
    服务器君一共花费 20.269 ms 进行了 3 次数据库查询,努力地为您提供了这个页面。
    广告很萌的

    App icon编程涉及的几个函数介绍 NavigationDrawer的ActionBar设计

    在使用抽屉导航 NavigationDrawer 的过程中,你会发现点击 app icon 会呼出 Drawer,还有 Action bar 上的 Menu,点击也会呼出 Drawer,这里介绍一下涉及的一些相关函数,以方便后面的修改与定制。

    最主要的有三个函数:

    • onPostCreate() to sync your Drawer state 同步 Drawer 状态。
    • onOptionsItemSelected() to handle the touch event of the App icon 处理应用App icon的触摸事件。
    • onConfigurationChanged() to provide the new configuration to the drawer 向 Drawer 更新配置。

    1. onPostCreate

    @Override
    protected void onPostCreate(Bundle savedInstanceState) {
         super.onPostCreate(savedInstanceState);
         // Sync the toggle state after onRestoreInstanceState has occurred.
         mDrawerToggle.syncState();
    }
    

    新版本用了 Runnable:

    // Defer code dependent on restoration of previous instance state.
    mDrawerLayout.post(new Runnable() {
    	@Override
    	public void run() {
    		mDrawerToggle.syncState();
    	}
    });
    

    2. onOptionsItemSelected

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
         // Pass the event to ActionBarDrawerToggle, if it returns
         // true, then it has handled the app icon touch event
         if (mDrawerToggle.onOptionsItemSelected(item)) {
             return true;
         }
         // Handle your other action bar items...
    
         return super.onOptionsItemSelected(item);
    }
    

    加入对 Action Bar 右侧的menu控制,则代码为:

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
    	if (mDrawerToggle.onOptionsItemSelected(item)) {
    		return true;
    	}
    
    	if (item.getItemId() == R.id.action_example) {
    		//Toast.makeText(getActivity(), "Example action.", Toast.LENGTH_SHORT).show();
    		//mDrawerLayout.openDrawer(Gravity.LEFT);
    		mDrawerLayout.openDrawer(mFragmentContainerView);
    		return true;
    	}
    
    	return super.onOptionsItemSelected(item);
    }
    

    3. onConfigurationChanged

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
    	super.onConfigurationChanged(newConfig);
    	// Forward the new configuration the drawer toggle component.
    	mDrawerToggle.onConfigurationChanged(newConfig);
    }
    
更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [Python程序设计] Tornado表单处理 3 个条目
  2. [Python程序设计] Tornado 服务器环境配置 3 个条目
  3. [PHP程序设计] 声明式编程范式 12 个条目
  4. [PHP程序设计] htaccess 设置技巧 6 个条目
  5. [PHP程序设计] PHP与Stream流 5 个条目
  6. [软件工程与项目管理] 呈现树的构建 13 个条目
  7. [Python程序设计] 写几个简单的Tornado程序吧 5 个条目
  8. [数据库技术] 无限级分类数据表设计 4 个条目
  9. [移动开发] Android开发基础知识 4 个条目
  10. [JavaScript程序设计] Web实时通信技术名词解析 5 个条目
  11. [Linux操作系统] 基本 Linux Shell 命令 2 个条目
  12. [PHP程序设计] 对输入文件类型的检测 1 个条目
窗口 -- [博客]