• Android ActionBar简单使用


    ActionBar 出现在Android 3.0后 API 11之后,替代了3.0之前的标题栏

    ActionBar分为四个区域

    A : 图标 || B : 标题 || C : 内容切换 || D :菜单

    常用方法

    Activity.getActionBar() // 在Activity中得到ActionBar对象

    隐藏ActionBar
    Manifest:
            android:theme="@android:style/Theme.Holo.NoActionBar"
    JavaCode:
            ActionBar.hide();

     ActionBar.setBackgroundDrawable(Drawable)  // 设置背景

    A:

    ActionBar.setDisplayHomeAsUpEnabled(boolean)  // 设置A区域是否可以点击

    ActionBar.setDisplayShowHomeEnabled(boolean)  // 设置A区域图标是否显示

    事件监听 Activity重写onMenuItemSelected方法,android.R.id.home为区域按钮id

    @Override
    public boolean onMenuItemSelected(int featureId, MenuItem item) {
        if (item.getItemId() == android.R.id.home) { // TODO
            Toast.makeText(this, "Home", Toast.LENGTH_SHORT).show();
        }
        return super.onMenuItemSelected(featureId, item);
    }

    B:

    ActionBar.setTitle(CharSequence)                  // 设置区域显示内容

    ActionBar.setDisplayShowTitleEnabled(false); // 设置区域是否显示

    C:

    ActionBar.setNavigationMode(int)                 // 设置此区域的样式

    ActionBar.NAVIGATION_MODE_STANDARD   // 默认


    ActionBar.NAVIGATION_MODE_TABS    // 选项卡

    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    ActionBar.TabListener tabListener = new ActionBar.TabListener() {
        @Override
        public void onTabUnselected(Tab tab, FragmentTransaction ft) {}
    
        @Override
        public void onTabSelected(Tab tab, FragmentTransaction ft) {}
    
        @Override
        public void onTabReselected(Tab tab, FragmentTransaction ft) {}
    };
    actionBar.addTab(actionBar.newTab().setText("Tab_01").setTabListener(tabListener));
    actionBar.addTab(actionBar.newTab().setText("Tab_02").setTabListener(tabListener));
    actionBar.addTab(actionBar.newTab().setText("Tab_03").setTabListener(tabListener)); // 如果不加监听程序会报错

    ActionBar.NAVIGATION_MODE_LIST     // List显示

    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
    String[] lists = { "List_01", "List_02", "List_03" };
    ArrayAdapter<String> listAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, lists);
    ActionBar.OnNavigationListener navListener = new ActionBar.OnNavigationListener() {
        @Override
        public boolean onNavigationItemSelected(int arg0, long arg1) {
            return false;
        }
    };
    actionBar.setListNavigationCallbacks(listAdapter, navListener);

    D:

    关于D菜单区域相当于重写3.0之前的菜单,在屏幕显示不下的会显示三个点,点击会展开

    项的生成与事件监听,重写Activity中的以下方法

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.getMenuInflater().inflate(R.menu.main, menu);  // 填充Menu
        return true;
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        // TODO 根据id判断处理
        return super.onOptionsItemSelected(item);
    }
  • 相关阅读:
    BZOJ2555 SubString(后缀自动机+LCT)
    Luogu4770 NOI2018你的名字(后缀自动机+线段树合并)
    Luogu5284 十二省联考2019字符串问题(后缀树+拓扑排序)
    Codeforces Round #557 Div. 1 based on Forethought Future Cup
    【JS】window.print打印指定内容
    【PHP】Thinkphp 七牛云API对接
    【JS】JS实现时间戳转换成普通时间
    【CSS】非常简单的css实现div悬浮页面底部
    【PHP】php中json_decode()和json_encode()
    【Linux】安装mysql之设置远程访问权限
  • 原文地址:https://www.cnblogs.com/smile365/p/3957616.html
Copyright © 2020-2023  润新知