关于Kris最近发布的SlidingMenu的兼容问题

最近一双休就老是外面跑,到现在才有时间改动下Kris的实例。@Kris大神走的是4.0版本以上,而我还在默默苦逼走着2.2,为了版本往下兼容得改动下Kris的实例。附上Kris大神的原文章地址:[SlidingMenu Viewpager](http://my.eoe.cn/kris/archive/1688.html),Kris大神已经详细介绍了思路及相关代码,这里我也就不再重复了,主要讲讲修改的地方:
 1.当然是将Fragment全部更换成support.v4兼容包的Fragment;
 2.由于support.v4兼容包木有PreferenceFragment,只能将MenuFragment改成Fragment;
 3.关于ActionBar的兼容,这里用到的是JakeWharton的ActionBarSherlock ,
    附上github地址:[ActionBarSherlock ](https://github.com/JakeWharton/ActionBarSherlock) 。
    大家可以看看,用法基本很ActionBar区别不大,有一小部分有点不一样。为了兼容anctionBar这里将SlidingMenu里的SlidingActivity,Slidin	gFragmentActivity,SlidingListActivity,SlidingPreferenceActivity分别继承ActionBarSherlock 里的SherlockActivity,SherlockFra	gmentActivity,SherlockListActivity,SherlockPreferenceActivity。
 4.SlidingMenuDemo的MainActivity我为了方便修改成继承SlidingFragmentActivity,MainActivity主要修改部分:
private void initSlidingMenu() {

        // customize the SlidingMenu
        SlidingMenu sm = getSlidingMenu();
        sm.setShadowWidth(50);
        sm.setShadowDrawable(R.drawable.shadow);
        sm.setBehindOffset(80);
        sm.setFadeDegree(0.35f);
        //设置slding menu的几种手势模式
        //TOUCHMODE_FULLSCREEN 全屏模式,在content页面中,滑动,可以打开sliding menu
        //TOUCHMODE_MARGIN 边缘模式,在content页面中,如果想打开slding ,你需要在屏幕边缘滑动才可以打开slding menu
        //TOUCHMODE_NONE 自然是不能通过手势打开啦
        sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);

        //使用左上方icon可点,这样在onOptionsItemSelected里面才可以监听到R.id.home
        //getSupportActionBar为兼容包获得actionBar
        ActionBar actionbar = this.getSupportActionBar();
        actionbar.setDisplayHomeAsUpEnabled(true);
    }
    @Override
    /**修改为SherlockFragmentActivity actionBar兼容包的监听 dong**/
    public boolean onMenuItemSelected(int featureId,
            com.actionbarsherlock.view.MenuItem item) {

         switch (item.getItemId()) {
         case android.R.id.home:
              toggle();
              return true;
         }
        return super.onMenuItemSelected(featureId, item);

    }
 5.剩下的基本改动不大,有两点要注意的是 
                    1)要使用ActionBarSherlock的时候 AndroidManifest.xml里的要设置theme,是@style/Theme.Sherlock 。
                     2)编译的环境是4.0
   6.我自己附加了一个FlipViewController的效果,github地址我给忘了,有知道的人可以提供下。用起来还是瞒简单的。
   7.附上项目关联图:
      ![兼容ActionBar.jpg](http://a1.eoe.cn/www/home/201303/19/eed0/514823d5d1022.jpg '兼容ActionBar.jpg')
    以上是为了ActionBar的低版本兼容。按我的习惯,还是习惯2.2的编译环境。所以我把ActionBar部分舍去,用ViewPagerIndicator来代替,ViewPagerIndicator的github地址:[ViewPagerIndicator](https://github.com/JakeWharton/Android-ViewPagerIndicator)。
     1.将SlidingMenu改成2.2编译环境,主要将SlidingMenu的manageLayers硬件加速功能舍去,和一些高版本常量赋值下来代替或添加。
     2.剔除ActionBar部分,更换。
     3.ViewPagerIndicatorFragment:主要就是FragmentPagerAdapter的问题而已
        ```java
            //ViewPagerIndicator与Viewpager的关联
        indicator.setViewPager(pager);
            //这里是为了SlidingMenu触碰的控制
    indicator.setOnPageChangeListener(onPageChangeListener);
    4.同样的,要注意:1)使用ViewPagerIndicator的时候 AndroidManifest.xml里的要设置theme,是@style/Theme.PageIndicatorDefaults。也可以自己依照你的需求参考github提供的sample进行修改
            2)编译版本为2.2
         5.附上项目关联图:
             ![代替actionBar.jpg](http://a1.eoe.cn/www/home/201303/19/1610/51482c5c5d3a7.jpg '代替actionBar.jpg')
          在结尾处说说我对现在这种关联项目的一些看法:
               1)在关联项目少的情况下还是可以接受,但一旦关联项目一多扩展方面有点抓急,要避免样式冲突等问题;
               2)关联项目的时候,如果第三方包,要保证相同的第三方包的版本号一致,比如support.v4这个包,在编译的时候如果不一致的话会有错误提示,只需更换同一个就可以解决;
               3)这样在模块化方面的确有好处,可引导样式、资源文件、布局文件,这是jar包不足的地方。在修改维护方面,可直接修改源码,目的性比较强,那一块出了问题或需要修改可以快速的找到;

          最后附上Kirs大神的效果图:
![效果图.png](http://a1.eoe.cn/www/home/201303/19/5f89/51483062c7e90.png '效果图.png')
           写得不好勿喷,如要喷请轻喷!
          下载链接:[项目源码](http://www.eoeandroid.com/thread-262666-1-1.html)

原文作者: don

原文地址: http://my.eoe.cn/dongzai/archive/1768.html



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: UVM(Universal Verification Methodology)是一种用于验证集成电路设计的开放标准方法学。在UVM平台中,自动生成脚本是一种增强效率和减少错误的技术。 自动生成脚本是指使用脚本语言,通过模板、规则和算法等自动化生成测试代码的过程。在UVM中,我们可以利用自动生成脚本来实现验证环境和测试用例的搭建,以及一些重复性工作的自动化。这样可以大大减少手动编码的工作量,提高代码质量,加快验证过程。 在UVM中,自动生成脚本往往通过一些验证平台工具来实现。这些工具可以根据设计规范、功能需求以及特定验证环境的要求,自动化生成相应的UVM代码。例如,可以通过指定输入信号、约束条件、运行时间等参数,生成测试用例的模板代码。同时,也可以利用一些现有的函数库和模块,实现对于通用部分的重复利用,提高代码的可重用性。 自动生成脚本在UVM平台中的应用非常广泛。它可以自动化生成各种类型的验证组件,包括驱动器(driver)、监控器(monitor)、交易符号(transaction)、分析器(analyzer)等。这些自动生成的组件可以帮助验证工程师快速搭建验证环境,提高测试效率。 总而言之,UVM平台的自动生成脚本技术可以通过自动化生成测试代码,减少手动编码的工作量,提高代码质量和可重用性,从而加快验证过程。这是一项在集成电路设计验证中非常有用的技术。 ### 回答2: UVM(Universal Verification Methodology)是一种通用的验证方法学,用于验证硬件设计。它提供了一套规范和方法,帮助验证工程师快速而高效地开发和执行验证环境。而Kris是UVM平台上用于自动生成脚本的工具。 Kris通过分析设计源代码和验证环境的规格要求,自动生成UVM测试脚本。其主要优点是节省了验证工程师编写脚本的工作量,并可以减少人为错误。 使用Kris生成脚本主要分为以下几个步骤: 1.设计规格定义:验证工程师需要给出设计的规格要求,包括输入、输出的数据格式、操作流程等。 2.源代码分析:Kris会分析设计源代码,识别各个功能模块、接口和数据结构等,为后续生成脚本提供依据。 3.验证环境生成:根据设计规格和源代码信息,Kris会自动生成UVM验证环境,包括各种接口和信号的连接、配置寄存器和产生随机数据等。 4.测试脚本生成:基于验证环境和设计规格,Kris会自动生成一组完整的UVM测试脚本,包括产生输入数据、执行功能操作、检查输出数据等。 5.脚本优化和定制:生成的脚本可以进一步优化和定制,以适应不同的测试需求,如特定的边界条件、错误注入和覆盖率分析。 总结来说,Kris是一种强大的工具,可以自动化生成UVM平台上的测试脚本。它大大简化了验证工程师的工作,提高了验证环境和测试脚本的开发效率,有助于加速硬件设计的验证过程。 ### 回答3: UVM(通用验证方法学)平台的自动生成脚本Kris是一种用于自动创建基于UVM架构的验证环境的工具。它可以极大地提高验证工程师的工作效率和减少错误率。 Kris具有以下功能和特点: 1. 自动生成UVM验证环境:Kris可以通过分析设计和规格文档,自动创建符合UVM标准的验证环境。它可以将设计单元实例化为验证组件,并生成各个组件之间的连接和配置代码。 2. 可扩展性:Kris支持用户自定义模板和规则。用户可以根据自己的需求和设计规范,编写自定义模板和规则集,从而定制化生成的脚本。 3. 支持不同级别的自动化:Kris可以在不同的粒度上自动生成脚本。从整个芯片级别的验证环境到单个验证组件的配置代码,Kris可以生成不同级别的脚本。 4. 支持复杂性和层次结构:Kris可以处理复杂的设计结构和层次化的验证环境。它可以自动识别和处理不同级别的验证组件,并为它们生成相应的配置和连接。 5. 支持常见的设计语言和验证语言:Kris可以分析各种设计语言和验证语言的代码,并生成相应的UVM脚本。它支持常见的设计语言,如Verilog和VHDL,以及常用的验证语言,如SystemVerilog。 总而言之,Kris是一种强大的工具,可以自动生成符合UVM标准的验证环境脚本。通过自动化验证环境的创建过程,Kris可以帮助验证工程师节省大量的时间和精力,并提高验证工作的效率和质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值