zoukankan      html  css  js  c++  java
  • ActionBar

    简介:

    1. 取代3.0之前的标题栏,导时用v7包
    2. 提供一个用于识别应用程序的标示和用户的位置专属空间
    3. 在不同的应用程序之间提供一致的导航和视觉体验
    4. 突出Activity的关键操作(如“搜索”,创建,共享等),并且在可预见的方法内给用户提供快捷的访问

    删除,添加:

    1. 默认拥有ActionBar: ActionBar actionBar = getSupportActionBar() ;
    2. 隐藏:actionBar.hide();

    标题栏:

    1. 启用分离式操作栏:在<application>或<activity>元素中添加uiOptions="splitActionBarWhenNarrow"
    2. 导航栏使用应用图标响应两个操作之一:
      1. 返回应用的“主”Activity:
      2. 响应应用程序上级页面导航
      3. 当用户触摸这个图标时,系统会调用Activity带有android.R.id.home ID的onOptionsItemSelected方法。注意要使用应用图标来返回主页面,从Adroid4.0(API 14)开始,必须同过调用setHomeButtonEnabled(true)方法确保这个图标能够作为一个操作项

     菜单:

      在menu文件nnn.xml中:设置菜单内容:

    <?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/action_share"
            android:icon="@mipmap/ic_launcher"
            android:title="分享"
            app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
            app:showAsAction="always"/>
        <!--app:actionViewClass="android.support.v7.widget.SearchView"必须使用v7包下-->
        <item
            android:id="@+id/action_search"
            android:icon="@mipmap/ic_launcher"
            android:title="搜索"
            app:actionViewClass="android.support.v7.widget.SearchView"
            app:showAsAction="always"/>
    </menu>

      在activity中找到相应的对象:

     1 package com.example.yang.actionbar_demo;
     2 import android.content.Intent;
     3 import android.os.Bundle;
     4 import android.support.v4.view.MenuItemCompat;
     5 /*注意到正确的包v7包*/
     6 import android.support.v7.app.ActionBar;
     7 import android.support.v7.app.AppCompatActivity;
     8 import android.support.v7.widget.SearchView;
     9 import android.support.v7.widget.ShareActionProvider;
    10 import android.view.Menu;
    11 import android.view.MenuItem;
    12 import android.view.View;
    13 import android.widget.Toast;
    14 public class MainActivity extends AppCompatActivity implements ShareActionProvider.OnShareTargetSelectedListener {
    15     @Override
    16     protected void onCreate(Bundle savedInstanceState) {
    17         super.onCreate(savedInstanceState);
    18         setContentView(R.layout.activity_main);
    19         ActionBar actionBar = getSupportActionBar() ;
    20         /*隐藏*/
    21 //        actionBar.hide();
    22         /*作为图使用*/
    23         actionBar.setHomeButtonEnabled(true);
    24 //        actionBar.setDisplayHomeAsUpEnabled(true);
    25     }
    26     public void startActivity1_Click(View view) {
    27         startActivity(new Intent(this,MainActivity1.class));
    28     }
    29     ShareActionProvider provider;
    30     SearchView searchView ;
    31 /*创建菜单*/
    32     @Override
    33     public boolean onCreateOptionsMenu(Menu menu) {
    34         /*将位置文件nnn.xml导入对象menu*/
    35         getMenuInflater().inflate(R.menu.nnnn, menu);
    36         /*同过findItent方法拿到相应的MenuItem管理对象*/
    37         MenuItem item = menu.findItem(R.id.action_share);
    38         MenuItem item1 = menu.findItem(R.id.action_search);
    39         /*通过MenuItemCompat拿到相应的对象*/
    40         provider = (ShareActionProvider) MenuItemCompat.getActionProvider(item);
    41 //        searchView = (SearchView) MenuItemCompat.getActionView(item1);
    42 //        第二种获取searchView方法
    43         searchView = (SearchView)item1.getActionView();
    44         /*搜索事件监听*/
    45         provider.setOnShareTargetSelectedListener(this);
    46         searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
    47             @Override
    48             public boolean onQueryTextSubmit(String query) {
    49                 Toast.makeText(getApplicationContext(),query,Toast.LENGTH_SHORT).show();
    50                 return false;
    51             }
    52             @Override
    53             public boolean onQueryTextChange(String newText) {
    54                 return false;
    55             }
    56         });
    57         /*调用父类方法*/
    58         return super.onCreateOptionsMenu(menu);
    59     }
    60     @Override
    61     public boolean onShareTargetSelected(ShareActionProvider source, Intent intent) {
    62         return false;
    63     }
    64 }

    导航栏:

      在Activity中直接设置:

     1 import android.support.v4.app.FragmentTransaction;
     2 import android.support.v7.app.ActionBar;
     3 import android.support.v7.app.AppCompatActivity;
     4 import android.os.Bundle;
     5 import android.widget.Toast;
     6 public class MainActivity2 extends AppCompatActivity implements ActionBar.TabListener{
     7     @Override
     8     protected void onCreate(Bundle savedInstanceState){
     9         super.onCreate(savedInstanceState);
    10         setContentView(R.layout.activity_main2);
    11         ActionBar actionBar = getSupportActionBar();
    12         /*不推荐使用*/
    13         actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    14         /*标题栏不显示*/
    15         actionBar.setDisplayShowTitleEnabled(false);
    16         /*添加选项卡*/
    17         actionBar.addTab(actionBar.newTab().setText("新闻").setTabListener(this));
    18         actionBar.addTab(actionBar.newTab().setText("音乐").setTabListener(this));
    19         actionBar.addTab(actionBar.newTab().setText("电影").setTabListener(this));
    20         actionBar.addTab(actionBar.newTab().setText("娱乐").setTabListener(this));
    21     }
    22 /*FragmentTransaction:替换你想要的fragment*/
    23     @Override
    24     public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
    25         Toast.makeText(this,tab.getText(),Toast.LENGTH_SHORT).show();
    26     }
    27     @Override
    28     public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
    29     }
    30     @Override
    31     public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
    32     }
    33 }
  • 相关阅读:
    linux定时备份数据库
    svn 没有绿色小勾
    oracle dblink ora-12541 无监听
    WPS 设置多级标题
    sql 提高速度方法
    领骑衫获奖感言与总结
    团队项目(任务五):项目回顾
    项目回顾
    团队项目(任务四):第二次冲刺
    团队项目(任务三):第一次冲刺
  • 原文地址:https://www.cnblogs.com/uf0-java/p/6420660.html
Copyright © 2011-2022 走看看