zoukankan      html  css  js  c++  java
  • android 使用android.support.v7 添加ActionBar

    当需要在 android 7或更高的版本使用 ActionBar,则可以通过继承ActionBarActivity来实现,

    网上有一个开源项目来兼容老版本显示ActionBar的效果:ActionBarSherlock。

    使用android.support.v7 来实现ActionBar感觉会更简单一些。


    android.support.v7 有三个jar文件可供使用,对于ActionBar我们需要使用android-support-v7-appcompat.jar

    路径:...sdkextrasandroidsupportv7appcompatlibs   


    但是直接把这个jar  导入项目是不可以使用的,具体的步骤:

    1. 把appcompat 工程导入eclipse  [appcompat是一个 library project] ,路径:...sdkextrasandroidsupportv7appcompat

    导入之后的项目:

    2.导入appcompat工程的时候,记得要  Copy projects into workspace


    3.创建你自己的工程,如myDemo,右键单击该工程,选择Properties

    在弹出的对话框中,选择Android选项卡,然后点击Add按钮,添加appcompat工程。


    然后 OK 就可以了,我们的工程就引用了 support V7库工程了。

    4.在manifest文件中,为你使用了ActionBar的actitity添加theme属性,这个theme必须是 @style/Theme.AppCompat 或它的子类

    如:




    5.在res/menu目录下,修改Menu对应的xml文件:

    1. <menu xmlns:android="http://schemas.android.com/apk/res/android"   
    2.     xmlns:alpha="http://schemas.android.com/apk/res-auto" >  
    3.   
    4.     <item  
    5.         android:id="@+id/action_settings"  
    6.         android:orderInCategory="100"  
    7.         android:icon="@drawable/ic_launcher"  
    8.         alpha:showAsAction="ifRoom|withText"  
    9.         android:title="@string/action_settings"/>  
    10.   
    11. </menu>  


    需要注意的是:

    xmlns:alpha="http://schemas.android.com/apk/res-auto"  和  alpha:showAsAction="ifRoom|withText"

    他们的 alpha 要一致哦,相当于自定义一个命名空间,名字可以随意,但要一致。


    感觉这样的含义:如果直接使用android:showAsAction,但对于早期的版本来说android命名空间下不存在这个属性,就不能看到ActionBar的效果,而这个属性的定义存在于support V7 里面,所以可以兼容之前的版本。


    6.继承 ActionBarActivity  处理ActionBar

      1. import android.os.Bundle;  
      2. import android.support.v7.app.ActionBarActivity;  
      3. import android.view.Menu;  
      4.   
      5. public class MainActivity extends ActionBarActivity{  
      6.   
      7.     @Override  
      8.     protected void onCreate(Bundle savedInstanceState) {  
      9.         super.onCreate(savedInstanceState);  
      10.         setContentView(R.layout.activity_main);  
      11.     }  
      12.   
      13.     @Override  
      14.     public boolean onCreateOptionsMenu(Menu menu) {  
      15.         // Inflate the menu; this adds items to the action bar if it is present.  
      16.         getMenuInflater().inflate(R.menu.main, menu);  
      17.         return true;  
      18.     }  
      19.   

  • 相关阅读:
    codeforces 363B
    hdu 1075 字典树
    D
    C A Simple Job
    Washing Plates 贪心
    HDU 4143 A Simple Problem 分解因式
    ACdream 1236 Burning Bridges 割边 + 去重边
    E. Beautiful Subarrays 字典树
    反素数 -- 数学
    Codeforces Beta Round #79 (Div. 1 Only) B. Buses 树状数组
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/3406280.html
Copyright © 2011-2022 走看看