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

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

    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. [移动开发] ListView 使用相关问题集 1 个条目
  2. [JavaScript程序设计] Web实时通信技术名词解析 5 个条目
  3. [移动开发] Android View注入框架Butter Knife 3 个条目
  4. [Python程序设计] Django数据库模型 6 个条目
  5. [Python程序设计] Tornado 服务器环境配置 3 个条目
  6. [数据库技术] SQL基础语法 1 个条目
  7. [软件工程与项目管理] 开始使用Git 3 个条目
  8. [移动开发] 从代码角度去认识 Handler 4 个条目
  9. [Python程序设计] 标准库:urllib/urllib2 14 个条目
  10. [Python程序设计] Python Web部署的背景知识 9 个条目
  11. [PHP程序设计] PHP里的布尔类型 3 个条目
  12. [移动开发] Android里的ContentValues 2 个条目
窗口 -- [博客]