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

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

    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. [智力开发与知识管理] 学习编程为什么没会这么难? 7 个条目
  2. [移动开发] Android与SQLite数据库 7 个条目
  3. [移动开发] 使用support-v7 ActionBar前的那些坑 3 个条目
  4. [Python程序设计] Django架构流程分析 7 个条目
  5. [移动开发] Android 开发调试工具 ADB 3 个条目
  6. [数据结构] 散列表(哈希表) 13 个条目
  7. [PHP程序设计] PHP中的Hash算法 3 个条目
  8. [Python程序设计] Django 入门知识浅介 10 个条目
  9. [移动开发] Android抽屉导航NavigationDrawer 5 个条目
  10. [移动开发] Android SQLite增删查改实例(数据:魔弹之王) 2 个条目
  11. [PHP程序设计] PHP与函数式编程 1 个条目
  12. [Python程序设计] Python HTTP服务器 7 个条目
窗口 -- [八点]