如何给非AppCompatActivity添加Toolbar?--关于5.0新特性兼容5.0以下设备的探索
2015-05-25 17:56
375 查看
Android支持包22.1引进了AppCompatDelegate
最新22.1版本的支持包引入了大量酷炫的新特性,这些特性将允许我们轻易地将材料设计/API 21+的特性应用到之前的那些老的,不兼容的Activity上面。
我们知道,继承AppCompatActivity是最容易实现的方式,但是有时候我们还是需要使用老办法,对吗?
你可以使用支持包提供了新的AppCompatDelegate构件,很容易地将Toolbar添加到Activity上。
1,将Toolbar控件添加到布局文件上面
ActionBar现在已经被不再被告维护了,它应该被Toolbar取代,因为后者允许了更多的UI灵活性,并且允许Activity更容易地兼容于材料设计的UI模式。
因为我们要在这使用支持包,那么我们将使用Toolbar的支持版本,不然的话,将只能在API 21+上可用。
在xml中添加如下内容:
View Code
特别推荐,一个Activity只能链接到一个AppCompatDelegate实例,因此通过create()方法返回的实例应该保存在Activity里面直到该Activity被销毁。
现在,你已经完成了,运行你的应用,然后你的Activity将会魔法一般拥有一个Toolbar,而且看起来完全你是材料设计的AppCompatActivity!
非常简单?
再次声明,这只是边缘事例,在使用AppCompatDelegate之前,问题要考虑使用AppCompatActivity。
同时,一定要检出AppCompatDelegate的完全引用。如果你想要AppCompatDelegate活动地完全像一个AppCompatActivity,那么在你包裹AppCompatDelegate到Activity时将有大量的方法需要考虑写。
最新22.1版本的支持包引入了大量酷炫的新特性,这些特性将允许我们轻易地将材料设计/API 21+的特性应用到之前的那些老的,不兼容的Activity上面。
我们知道,继承AppCompatActivity是最容易实现的方式,但是有时候我们还是需要使用老办法,对吗?
你可以使用支持包提供了新的AppCompatDelegate构件,很容易地将Toolbar添加到Activity上。
1,将Toolbar控件添加到布局文件上面
ActionBar现在已经被不再被告维护了,它应该被Toolbar取代,因为后者允许了更多的UI灵活性,并且允许Activity更容易地兼容于材料设计的UI模式。
因为我们要在这使用支持包,那么我们将使用Toolbar的支持版本,不然的话,将只能在API 21+上可用。
在xml中添加如下内容:
private AppCompatDelegate delegate; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //let's create the delegate, passing the activity at both arguments (Activity, AppCompatCallback) delegate = AppCompatDelegate.create(this, this); //we need to call the onCreate() of the AppCompatDelegate delegate.onCreate(savedInstanceState); //we use the delegate to inflate the layout delegate.setContentView(R.layout.activity_main); //Finally, let's add the Toolbar Toolbar toolbar= (Toolbar) findViewById(R.id.my_awesome_toolbar); delegate.setSupportActionBar(toolbar); }
View Code
特别推荐,一个Activity只能链接到一个AppCompatDelegate实例,因此通过create()方法返回的实例应该保存在Activity里面直到该Activity被销毁。
现在,你已经完成了,运行你的应用,然后你的Activity将会魔法一般拥有一个Toolbar,而且看起来完全你是材料设计的AppCompatActivity!
非常简单?
再次声明,这只是边缘事例,在使用AppCompatDelegate之前,问题要考虑使用AppCompatActivity。
同时,一定要检出AppCompatDelegate的完全引用。如果你想要AppCompatDelegate活动地完全像一个AppCompatActivity,那么在你包裹AppCompatDelegate到Activity时将有大量的方法需要考虑写。
相关文章推荐
- 如何给非AppCompatActivity添加Toolbar?
- 如何给非AppCompatActivity添加Toolbar
- 如何给非AppCompatActivity添加Toolbar
- 关于向app中添加设备并上传至蒲公英
- AppCompat V21:将 Materia Design 兼容到5.0之前的设备
- 【Android】AppCompat V21:将 Materia Design 兼容到5.0之前的设备
- [Material Design开发系列1]AppCompat V21:将MD兼容到5.0之前的设备
- 如何利用Featue对特定的文档库或列表添加listviewtoolbar上的button
- 关于如何将APP上传到APP Store的发布流程
- 如何在越狱设备ROOT权限下安装APP
- xcode 如何添加调试设备
- 在Eclipse添加Android兼容包( v4、v7 appcompat )
- 如何添加设备UDID到开发者中心
- 在Eclipse添加Android兼容包( v4、v7 appcompat )(转)
- 如何在toolbar中添加新的工具条
- 如何在 Windows CE 5.0 中开发和测试设备驱动程序
- 小细节:关于使用/上传照片 你的APP如何提示用户
- 自定义推送声音需要如何添加到APP才会响?
- 关于app store distribution出现的'armv7'与最小版本'3.0'不兼容的问题
- 分辨率大改 iPhone5如何完美兼容旧App?