android actionbar

来源:互联网 发布:怎么做淘宝优惠券群主 编辑:程序博客网 时间:2024/05/19 19:35

一、项目中引入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;    }
0 0