ActionBar
来源:互联网 发布:全民突击辅助软件 编辑:程序博客网 时间:2024/06/06 01:21
ActionBar现在称为App Bar是一个标准的导航元素,组成:
应用图标,返回导航键导向逻辑父类,应用或者活动标题,持续的导航(包括抽屉)
基本
一般的话除非特别指定,只包含有一个标题
改变标题
标题是由AndroidManifest文件进行管理的,在activity的节点内,使用label标签,另外application节点内也可以设置,设置的值为自动的标题在没有为活动指定标签时自动采用这个标题
<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme"> <activity android:name="com.codepath.example.simpleapp.FirstActivity" android:label="@string/activity_name" > </activity></application>
可以修改android:label/android:icon
来修改标题和图标,也可以调用getSupportActionBar来获得引用动态修改相关的属性
ActionBar actionBar = getSupportActionBar(); // or getActionBar();getSupportActionBar().setTitle("My new title"); // set the top titleString title = actionBar.getTitle().toString(); // get the titleactionBar.hide(); // or even hide the actionbar
展示图标
android5.0不鼓励在actionbar展示图标,虽然可以通过代码加上:
getSupportActionBar().setDisplayShowHomeEnabled(true);//是否允许展示logo或者icon getSupportActionBar().setLogo(R.mipmap.ic_launcher); getSupportActionBar().setDisplayUseLogoEnabled(true);//展示logo而不是图标,logo更为清晰细腻
动作项
当你想向ActionBar添加基本动作时,可以加载在上下文菜单中,如果特别的指定的话他们就会出现在顶部右部。
活动从onCreateOptionsMenu
中提取创造actionbar
public class MainActivity extends AppCompatActivity { @Override public boolean onCreateOptionsMenu(Menu menu) { //记载菜单,加载项 adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; }}
我们需要新建一个布局res/menu/menu_main.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/miCompose" android:icon="@drawable/ic_compose" app:showAsAction="ifRoom" android:title="Compose"> </item> <item android:id="@+id/miProfile" android:icon="@drawable/ic_profile" app:showAsAction="ifRoom|withText" android:title="Profile"> </item></menu>
应该记住xmlns:app
命名空间支持了showAction
的操作,ifRoom表明这个选项需要直接作为一个图标出现在actionbar上,如果没有空间的话就会出现动作溢出,withText表明文本将和图标一起出现。
处理点击事件
使用android:onClick="onComposeAction" 然后定义onComposeAction方法。
方法二:重写onOptionsItemSelected()
对于传递的MenuItem项可以使用getItemId方法来识别,然后进行相应的操作。
@Overridepublic boolean onOptionsItemSelected(MenuItem item) { // Handle presses on the action bar items switch (item.getItemId()) { case R.id.miCompose: composeMessage(); return true; case R.id.miProfile: showProfileView(); return true; default: return super.onOptionsItemSelected(item); }}
理解ToolBar
在API21开始引进,可以作为ActionBar的替代者,它被认为是一个ViewGroup
可以被放置在布局中的任何位置,而且相对于ActionBar外观更同意定制,具有很好的兼容性,存在于android.support.v7.widget.ToolBar
类中
- ActionBar
- ActionBar
- ActionBar
- Actionbar
- ActionBar
- actionbar
- actionBar
- actionbar
- ActionBar
- ActionBar
- ActionBar
- ActionBar
- ActionBar
- ActionBar
- actionbar
- ActionBar()
- actionbar
- ActionBar
- BaseDAO(反射泛型)
- gitbook安装与使用
- MyEclipse2015+JDK1.8开发Android报错Unsupported major.minor version 52.0
- 20160710
- JSTL中类似if else的标签使用例子
- ActionBar
- 【9304】骨牌铺法
- 04使用harbor配置私仓
- C#里的Math方法
- jstl c:url 标签(类似 struts标签的 s:url)
- Nim Game
- HEXO+Github,搭建属于自己的博客(转)
- android网络编程之初体验
- Add Digits