zoukankan      html  css  js  c++  java
  • 6. ActionBar详解

    ActionBar简介

     隐藏和显示ActionBar

    隐藏ActionBar      getActionBar().hide(); 

    显示ActionBar      getActionBar().show(); 

     添加和响应Action按钮

     1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     android:layout_width="match_parent"
     3     android:layout_height="match_parent"
     4     android:orientation="vertical" >
     5     <Button
     6         android:id="@+id/button_hide_show_actionbar"
     7         android:layout_width="match_parent"
     8         android:layout_height="wrap_content"
     9         android:onClick="onClick_HideShowActionBar"
    10         android:text="隐藏ActionBar" />
    11 </LinearLayout>
     1 package cn.eoe.first.actionbar;
     2 
     3 import android.app.Activity;
     4 import android.os.Bundle;
     5 import android.view.Menu;
     6 import android.view.MenuInflater;
     7 import android.view.MenuItem;
     8 import android.view.View;
     9 import android.view.Window;
    10 import android.widget.Button;
    11 import android.widget.Toast;
    12 
    13 public class FirstActionBarActivity extends Activity {
    14     private Button hideShowActionBar;
    15 
    16     @Override
    17     protected void onCreate(Bundle savedInstanceState) {
    18         super.onCreate(savedInstanceState);
    19         getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
    20         setContentView(R.layout.activity_first_action_bar);
    21         hideShowActionBar = (Button) findViewById(R.id.button_hide_show_actionbar);
    22     }
    23 
    24     public void onClick_HideShowActionBar(View view) {
    25         if (getActionBar() == null)
    26             return;
    27         if (getActionBar().isShowing()) {
    28             getActionBar().hide();
    29             hideShowActionBar.setText("显示ActionBar");
    30         } else {
    31             getActionBar().show();
    32             hideShowActionBar.setText("隐藏ActionBar");
    33         }
    34     }
    35 
    36     @Override
    37     public boolean onCreateOptionsMenu(Menu menu) {
    38         MenuInflater inflater = getMenuInflater();
    39         inflater.inflate(R.menu.activity_first_action_bar, menu);
    40         // menu.getItem(2).setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
    41         return true;
    42     }
    43 
    44     @Override
    45     public boolean onOptionsItemSelected(MenuItem item) {
    46         Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
    47         return super.onOptionsItemSelected(item);
    48     }
    49 
    50 }
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <menu xmlns:android="http://schemas.android.com/apk/res/android" >
     3 
     4     <item
     5         android:id="@+id/menu_save"
     6         android:icon="@drawable/save"
     7         android:showAsAction="ifRoom|withText"
     8         android:title="保存"/>
     9     <item
    10         android:id="@+id/menu_open"
    11         android:icon="@drawable/open"
    12         android:showAsAction="ifRoom"
    13         android:title="打开"/>
    14     <item
    15         android:id="@+id/menu_search"
    16         android:icon="@drawable/search"
    17         android:showAsAction="always"
    18         android:title="保存"/>
    19     <item
    20         android:id="@+id/menu1"
    21         android:icon="@drawable/ic_launcher"
    22         android:showAsAction="ifRoom"
    23         android:title="菜单项1"/>
    24     <item
    25         android:id="@+id/menu2"
    26         android:icon="@drawable/ic_launcher"
    27         android:showAsAction="ifRoom"
    28         android:title="菜单项2"/>
    29    
    30 </menu>

     可上下两分的Action

     1 package cn.eoe.split.actionbar;
     2 
     3 import android.os.Bundle;
     4 import android.app.Activity;
     5 import android.view.Menu;
     6 import android.view.MenuInflater;
     7 
     8 public class SplitActionBar extends Activity {
     9 
    10     @Override
    11     protected void onCreate(Bundle savedInstanceState) {
    12         super.onCreate(savedInstanceState);
    13         setContentView(R.layout.activity_split_action_bar);
    14     }
    15 
    16     @Override
    17     public boolean onCreateOptionsMenu(Menu menu) {
    18         MenuInflater inflater = getMenuInflater();
    19         inflater.inflate(R.menu.activity_split_action_bar, menu);
    20         return true;
    21     }
    22 }
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <menu xmlns:android="http://schemas.android.com/apk/res/android" >
     3 
     4     <item
     5         android:id="@+id/menu_save"
     6         android:icon="@drawable/open"
     7         android:showAsAction="always|withText"/>
     8     <item
     9         android:id="@+id/menu_open"
    10         android:icon="@drawable/open"
    11         android:showAsAction="always"
    12         android:title="打开"/>
    13     <item
    14         android:id="@+id/menu_search"
    15         android:icon="@drawable/search"
    16         android:showAsAction="always"
    17         android:title="保存"/>
    18     <item
    19         android:id="@+id/menu1"
    20         android:icon="@drawable/ic_launcher"
    21         android:showAsAction="always"
    22         android:title="菜单项1"/>
    23     <item
    24         android:id="@+id/menu2"
    25         android:icon="@drawable/ic_launcher"
    26         android:showAsAction="always"
    27         android:title="菜单项2"/>
    28 
    29 </menu>

     收缩和展开Action View 

     1 import android.annotation.SuppressLint;
     2 import android.app.Activity;
     3 import android.os.Bundle;
     4 import android.view.Menu;
     5 import android.view.MenuItem;
     6 import android.view.MenuItem.OnActionExpandListener;
     7 import android.widget.Toast;
     8 
     9 @SuppressLint("NewApi")
    10 public class ActionViewActivity extends Activity implements
    11         OnActionExpandListener {
    12     // private Menu menu;
    13 
    14     @Override
    15     protected void onCreate(Bundle savedInstanceState) {
    16         super.onCreate(savedInstanceState);
    17         setContentView(R.layout.activity_action_view);
    18     }
    19 
    20     @Override
    21     public boolean onCreateOptionsMenu(Menu menu) {
    22         getMenuInflater().inflate(R.menu.activity_action_view, menu);
    23         // this.menu = menu;
    24         for (int i = 0; i < menu.size(); i++) {
    25             menu.getItem(i).setOnActionExpandListener(this);
    26         }
    27         return true;
    28     }
    29 
    30     @Override
    31     public boolean onMenuItemActionExpand(MenuItem item) {
    32         Toast.makeText(this, "<" + item.getTitle() + ">已经展开", Toast.LENGTH_LONG)
    33                 .show();
    34 
    35         return true;
    36     }
    37 
    38     @Override
    39     public boolean onMenuItemActionCollapse(MenuItem item) {
    40         Toast.makeText(this, "<" + item.getTitle() + ">已经收缩", Toast.LENGTH_LONG)
    41                 .show();
    42         return true;
    43     }
    44 
    45 }

    res/menu/activity_action_view.xml

     1 <menu xmlns:android="http://schemas.android.com/apk/res/android" >
     2 
     3     <item
     4         android:id="@+id/menu_item_edit"
     6         android:actionViewClass="android.widget.EditText"
     8         android:showAsAction="always"
     9         android:title="编辑"/>
    11     <item
    12         android:id="@+id/menu_item_clock"
    13         android:actionLayout="@layout/action_view_clock"
    14         android:icon="@drawable/time"
    15      
    16         android:showAsAction="always|collapseActionView"
    17         android:title="时间"/>
    18     <item
    19         android:id="@+id/menu_item_search"
    20         android:actionViewClass="android.widget.SearchView"
    21         android:icon="@drawable/search"
    23         android:showAsAction="always|collapseActionView"
    24         android:title="搜素"/>
    25 
    26 </menu>
  • 相关阅读:
    二分查找:思路很简单,细节是魔鬼
    今天遇到了 X-Y PROBLEM
    《工匠精神》读书笔记
    养成好的职业习惯
    php xdebug 调试
    Dockerfile的常见命令
    docker制作镜像
    脱坑笔记
    Java中代理
    2、遇到多个构造器参数的时候要考虑使用构建器
  • 原文地址:https://www.cnblogs.com/androidsj/p/3872117.html
Copyright © 2011-2022 走看看