Android  ActionBar控件操作使用详解

 更新时间:2023年04月14日 08:28:17   作者:不入流Android开发  
这篇文章主要介绍了Android  ActionBar控件操作使用,ActionBar是Android常用的导航控件,位于activity的顶部,用于显示标题,导航icon和actions等等

ActionBar是一个显示在屏幕顶部的控件,它包括了在左边显示的应用的logo图标和右边操作菜单的可见项。

实现方法

在ActionBar上的图标叫做ActionButtons,可以把不重要的ActionButtons放在ActionOverflows。

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/action_share"
        android:actionProviderClass="android.widget.ShareActionProvider"
        android:showAsAction="ifRoom"
        android:title="@string/share"/>
    <item
        android:id="@+id/action_search"
        android:icon="@drawable/ic_action_search"
        android:showAsAction="ifRoom"
        android:title="@string/search"/>
    <item
        android:id="@+id/action_setting"
        android:showAsAction="always"
        android:title="@string/setting"/>
</menu>

在Activity中:

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        MenuItem shareItem = menu.findItem(R.id.action_share);
        return true;
    }

自定义ActionBar background:

  • 在Theme.xml中新建自定义Style,使其继承已有的Action Bar Style(Theme.holo)
  • 复写其actionBarStyle属性
  • actionBarStyle属性值指向另一个被覆写了background属性的Style
  • 指定该background的属性值

theme.xml:

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="CustomActionBarTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar">
        <item name="android:actionBarStyle">@style/CustomBackground</item>
    </style>
    <style name="CustomBackground" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
        <item name="android:background">@drawable/actionbar_background</item>
    </style>

设置ActionBar为Tab样式:

ActionBar actionBar = getActionBar(); //for <3.0 getSupportActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        for (int i = 0; i < 3; i++){
            Tab tab = actionBar.newTab();
            tab.setText("Tab" + i);
            tab.setTabListener(null);
            actionBar.addTab(tab);
        }

实现Tablistener回调方法:

  ActionBar.TabListener tabListener = new ActionBar.TabListener() {
        @Override
        public void onTabSelected(Tab tab, FragmentTransaction ft) {
            Toast.makeText(MainActivity.this, "TabSelected" + tab.getPosition(), Toast.LENGTH_SHORT).show();
        }
        @Override
        public void onTabUnselected(Tab tab, FragmentTransaction ft) {
        }
        @Override
        public void onTabReselected(Tab tab, FragmentTransaction ft) {
        }
    };

启用Overlay模式

ActionBar占用一定屏幕空间,可以使之自动隐藏,但是每次自动隐藏又会导致重新计算屏幕,可以设置其为Overlay模式以把ActionBar放在屏幕的上面而不是顶部。

首先需要创建自定义theme,并设置android.windowActionBarOverlay属性为true。

<style
        name="CustomActionBarOverlayTheme"
        parent="@android:style/Theme.Holo"
        >
        <item name="android:windowActionBarOverlay">true</item>
    </style>

如果要预留一定空间,可以指定PaddingTop:

android:paddingTop="?android:attr/actionBarSize"

添加ActionProvider:

menu.xml:

   <item
        android:id="@+id/action_share"
        android:actionProviderClass="android.widget.ShareActionProvider"
        android:showAsAction="ifRoom"
        android:title="@string/share"/>

在Activity代码中:(当前系统中能够发送图片的所有应用)

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    MenuItem shareItem = menu.findItem(R.id.action_share);
    mShareActionProvider = (ShareActionProvider) shareItem.getActionProvider();
    mShareActionProvider.setShareIntent(getDefaultIntent());
    return true;
}
private Intent getDefaultIntent() {
    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("image/*");
    return intent;

到此这篇关于Android ActionBar控件操作使用详解的文章就介绍到这了,更多相关Android ActionBar控件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 深入浅析Android JSON解析

    深入浅析Android JSON解析

    android中网络数据传输是经常被用到的,通常我们使用xml或者json,而json更加轻量,便捷,我们使用的更多。我自己在项目中使用很多,今天就说说android中怎么去解析JSON,帮助自己总结内容,同时帮助别人少走弯路
    2015-12-12
  • Android实现按钮点击效果

    Android实现按钮点击效果

    本文主要介绍了Android实现按钮点击效果:第一次点击变色,第二次恢复。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • Android 中cookie的处理详解

    Android 中cookie的处理详解

    这篇文章主要介绍了Android 中cookie的处理详解的相关资料,主要介绍Android 中Cookie 的操作,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-08-08
  • android横竖屏切换时候Activity的生命周期

    android横竖屏切换时候Activity的生命周期

    曾经遇到过一个面试题,让你写出横屏切换竖屏Activity的生命周期。现在给大家分析一下他切换时具体的生命周期是怎么样的
    2013-01-01
  • android 仿微信demo——注册功能实现(服务端)

    android 仿微信demo——注册功能实现(服务端)

    本篇文章主要介绍了微信小程序-阅读小程序实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能给你们提供帮助
    2021-06-06
  • Android实现网易严选标签栏滑动效果

    Android实现网易严选标签栏滑动效果

    这篇文章主要为大家详细介绍了Android实现网易严选标签栏滑动效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • Android ListView万能适配器实例代码

    Android ListView万能适配器实例代码

    本文主要介绍Android ListView万能适配器,这里整理了详细的资料及实现代码,以及实现效果图,有需要的小伙伴可以参考下
    2016-09-09
  • Android实现长截屏功能

    Android实现长截屏功能

    这篇文章主要为大家详细介绍了Android实现长截屏功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01
  • Android OKHttp使用简介

    Android OKHttp使用简介

    目前Android端调用网络请求最常用的框架就是OKHttp,目前项目中也经常会用到。介绍下OKHttp的使用场景
    2021-05-05
  • Android 中Notification弹出通知实现代码

    Android 中Notification弹出通知实现代码

    NotificationManager 是状态栏通知的管理类,负责发通知、清除通知等操作。接下来通过本文给大家介绍Android 中Notification弹出通知实现代码,需要的的朋友参考下吧
    2017-08-08

最新评论