zoukankan      html  css  js  c++  java
  • 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);
    }
  • 相关阅读:
    建表
    第5讲:控制语句
    第4讲:函数
    第1讲:面向对象
    野路子小白安装黑苹果 OpenCore引导 @a.宏万
    野路子学习esp32(十九)ESP32-Arduino 第二篇 智能孵化器 @a.宏万
    野路子学习esp32(十八)ESP32-Arduino 第一篇 @a.宏万
    野路子学习esp32(十七)ESP32-MicroPython OLED AND DHT11 @a.宏万
    野路子学习esp32(十六) MQTT与ESP32-MicroPython @a.宏万
    野路子学习esp32(十五) 1z实验室 EMP项目@a.宏万
  • 原文地址:https://www.cnblogs.com/smile365/p/3957616.html
Copyright © 2011-2022 走看看