android actionbar
2015-06-25 15:39
330 查看
一、项目中引入actionbar
1.1 android 3.0以下
需用 \android\support\v7\appcompatactivity 继承自appcompatActivity,
获得actionbar实例 getSupportActionBar()
manifest.xml activity 主题 要继承自使用 appcompat 的主题
在项目的res/values/themes.xml内定义
Theme.AppCompat
1.2 android 3.0以上
直接继承 activity获得实例 getActionBar()
manifest.xml activity 主题
<style name="AppBaseTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar">
android:Theme.Holo.Light
二、控制显示
setDisplay*** Enabled()setHomeButtonEnabled()
设置 对应部分可见
上面的方法都会调用间接的调用
setDisplayOptions() 参数是一些DISPLAY_***的常量,按位运算
还有一些set对应部分的值方法,如:
seticon() setlogo() settitle() setCustomView(),
@Override public boolean onCreateOptionsMenu(Menu menu) {}
中的菜单会在actionbar的右端显示
外观的style的设置可见
http://blog.csdn.net/shulianghan/article/details/39269163?utm_source=tuicool
如修改返回按纽的图片
在activity 的样式中
@drawable/back
三、事件处理
public boolean onOptionsItemSelected(MenuItem item) {}返回按纽 item 的id 是android.R.id.home
四、导航样式
/** * Set the current navigation mode. * * @param mode The new mode to set. * @see #NAVIGATION_MODE_STANDARD * @see #NAVIGATION_MODE_LIST * @see #NAVIGATION_MODE_TABS */ public abstract void setNavigationMode(int mode);
只有三个值 standard是默认的是,只显示顶上一行。
NAVIGATION_MODE_TABS
actionBar.addTab(tab);
的方式调用tab
NAVIGATION_MODE_LIST
public abstract void setListNavigationCallbacks(SpinnerAdapter adapter, OnNavigationListener callback);
的方式添加,列表在标题的后面,
五、item添加action
menu.xml 文件 可以添加 自android:actionViewClass
android:actionProviderClass
自定义的事件
如
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity" > <item android:id="@+id/action_search" android:actionViewClass="android.widget.SearchView" android:icon="@android:drawable/btn_plus" android:showAsAction="ifRoom|collapseActionView" android:title="搜索"/> <item android:id="@+id/share_item" android:actionProviderClass="android.widget.ShareActionProvider" android:icon="@drawable/ic_launcher" android:orderInCategory="1" android:showAsAction="always" android:title="item1"> </item> <item android:id="@+id/action_settings" android:icon="@drawable/ic_launcher" android:orderInCategory="3" android:showAsAction="always" android:title="item1"> <menu> <item android:id="@+id/save" android:icon="@drawable/ic_launcher" android:orderInCategory="4" android:showAsAction="ifRoom|withText" android:title="item2"/> <item android:id="@+id/item8" android:icon="@drawable/ic_launcher" android:orderInCategory="5" android:showAsAction="ifRoom|withText" android:title="item3"/> <item android:id="@+id/item9" android:icon="@drawable/ic_launcher" android:orderInCategory="6" android:showAsAction="ifRoom|withText" android:title="item4"/> </menu> </item> </menu>
ShareActionProvider 设置分享的内容
@Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); getMenuInflater().inflate(R.menu.menu_main, menu); MenuItem menuItem = menu.findItem(R.id.share_item); ShareActionProvider mShareActionProvider = (ShareActionProvider) menuItem .getActionProvider(); Intent shareIntent = getShareIntent(); mShareActionProvider.setShareIntent(shareIntent); return true; } public Intent getShareIntent() { Intent intent = new Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_TEXT, "这里是要分享的文字"); intent.setType("text/plain"); Intent.createChooser(intent, "Share"); return intent; }
相关文章推荐
- TTS---android 中TextToSpeech的用法
- 二、Android应用的界面编程(六)ProgressBar及其子类[SeekBar、RatingBar]er
- 【Android单元测试系列】真正的异步单元测试
- 使用eclipse CDT调试android native代码
- 用android动画实现手势动画
- android学习之路(四)----RenderScript
- Android横竖屏切换小结
- Firefly 3288重新制作android和lubuntu双系统固件
- android AndroidManifest.xml 多个android.intent.action.MAIN (
- Android SQLiteStatement 编译、执行 分析
- Android的Library工程
- android 加载图片oom的好的解决方法
- Android 中使用自定义字体的方法
- mono for Android 问题集合
- android 4.4 强制所有应用横屏显示
- [Android Studio] 取消引用库打包出现异常-- provided dependencies can only be jars
- android调用,暂停或停止系统自带音乐播放器
- android dialog
- 将Eclipse代码导入到AndroidStudio的两种方式
- Android 编程下 Touch 事件的分发和消费机制