您的位置:首页 > 移动开发 > Android开发

android actionbar

2015-06-25 15:39 330 查看

一、项目中引入actionbar

1.1 android 3.0以下

需用 \android\support\v7\appcompat

activity 继承自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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: