zoukankan      html  css  js  c++  java
  • Action Bar

    1.显示隐藏Action Bar

    1.配置上

    在application 上的

    android:theme="@style/AppTheme"全局配置ActionBar
    在某个activity上设置
    android:theme="@style/Theme.AppCompat.NoActionBar"配置没有actionBar
    <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".MainActivity" android:theme="@style/Theme.AppCompat.NoActionBar">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>

    2.代码中实现ActionBar的显示隐藏

     public void onClick(View v) {
            ActionBar actionBar = getSupportActionBar();  //获取actionBar对象
            switch (v.getId()){
                case R.id.action_btn_show:
                    actionBar.show();  //显示
                    break;
                case R.id.action_btn_hide:
                    actionBar.hide();  //隐藏
                    break;
                default:
                    break;
            }
        }

    2.添加Action Item 的步骤

    1.定义菜单资源文件

    app:showAsAction:alwary:一直显示在栏上   ifRoom空间够显示在栏上,never显示在更多里面
    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto">
        <item android:id="@+id/search"
            android:icon="@drawable/search"
            android:title="search"
            app:actionViewClass="android.support.v7.widget.SearchView"
            app:showAsAction="always">
        </item>
        <item android:id="@+id/bell"
            android:icon="@drawable/bell"
            android:title="消息"
            app:showAsAction="ifRoom">
        </item>
        <item android:id="@+id/setting"
            android:icon="@drawable/bell"
            android:title="设置"
            app:showAsAction="ifRoom">
        </item>
        <item android:id="@+id/link"
            android:icon="@drawable/bell"
            android:title="关于"
            app:showAsAction="ifRoom">
        </item>
    </menu>

    2.在onCreateOptionsMenu()方法中加载菜单资源文件

     @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            MenuInflater inflater = getMenuInflater();  //实例化MenuInflater
            inflater.inflate(R.menu.menu,menu);
            return super.onCreateOptionsMenu(menu);
        }

    3.添加Action View 的步骤

    1.定义菜单资源文件

    app:showAsAction:alwary:一直显示在栏上   ifRoom空间够显示在栏上,never显示在更多里面
    //使用  app:actionViewClass通过实现类
    <item android:id="@+id/search"
    android:icon="@drawable/search"
    android:title="search"
    app:actionViewClass="android.support.v7.widget.SearchView" //使用实现类
    app:showAsAction="always">
    </item>
    //使用 app:actionLayout 属性 通过布局文件
    <item android:id="@+id/man"
    android:title="关于"
    app:actionLayout="@layout/image_add" //使用布局文件
    app:showAsAction="always">
    </item>
    2.在onCreateOptionsMenu()方法中加载菜单资源文件(同上)

    4.ActionBar实现tab导航

    1.设置使用Tab导航方式 

     public void initTabBar(){
            //获取actionBar
            ActionBar actionBar = getSupportActionBar();
            //设置不显示标题
            actionBar.setDisplayOptions(0,ActionBar.DISPLAY_SHOW_TITLE);
            //设置模式是tab
            actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
            //actionBar.addTab(actionBar.newTab().setText("词典"));
            actionBar.addTab(actionBar.newTab()
                    .setText("词典").setTabListener(new MyTabListener(this,AddFragment.class)));
        }

       

    2.添加多个Tab标签页,并为每个Tab标签页添加事件监听

    /*
      实现各标签页的切换
     */
    public class MyTabListener implements TabListener {
        private final Activity activity;//用于指定要加载的Fragment的activity
        private final Class aClass;  //用于指定Fragment要加载的类
        private Fragment fragment;
    
        public MyTabListener(Activity activity, Class aClass) {
            this.activity = activity;
            this.aClass = aClass;
        }
         //被选择标签页的事件
        @Override
        public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
            //判断fragment是否初始化
            if(fragment ==null){
                //反射方式实现初始化,参数:上下文对象,类名
                fragment = Fragment.instantiate(activity,aClass.getName());
                //将fragment进行添加
                ft.add(android.R.id.content,fragment,null);
            }
            ft.attach(fragment); //将添加进
        }
    
        @Override
        public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
            //判断fragment是否初始化
            if(fragment !=null){
               ft.detach(fragment);  //删掉
            }
        }
    
        @Override
        public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
    
        }
    }
     
  • 相关阅读:
    jquery学习11.3.4
    寒假帝释天
    我的2010年
    终于放假了!!!
    2010.1.21
    寒假第五天
    关于三层架构
    js正则表达式限制文本框只能输入数字,小数点,英文字母
    windows的命令行方式下TAB键自动补全设置方法
    Oracle的一些常用命令
  • 原文地址:https://www.cnblogs.com/xuqp/p/9838001.html
Copyright © 2011-2022 走看看