Thinking in Google Doc - ActionBar讲解

简介:


对于ActionBar,谷歌文档介绍了2种写法,其中2.1是带v7包。


     对于3.0(使用系统自带的主题)    ---带应用的icon

       If you've created a custom theme, be sure it uses one of the Theme.Holo themes 

       as its parent.

      android:theme="@android:style/Theme.Holo"     


     

     对于2.1带v7包(使用v7包里的主题)   ---不带应用的icon 

     第1:Activity要继承自ActionBarActivity

     第2:Activity的主题必须是AppCompat

       <activity android:theme="@style/Theme.AppCompat.Light" ... >

         public class MainActivity extends ActionBarActivity { ... }


     千万要注意的问题:AppCompatActivity必须与AppCompat的主题配合使用,不能混搭。


>>>>对于使用了支持库的,有一个问题需要注意一下:

  只有AppComatActivity才有showAsAction这个属性,Activity只有菜单,并不会将菜单里的条目做

 成Action。

If your app is using the Support Library for compatibility on versions as low as Android 2.1, the showAsAction attribute is not available from the android: namespace. Instead this attribute is provided by the Support Library and you must define your own XML namespace and use that namespace as the attribute prefix. (A custom XML namespace should be based on your app name, but it can be any name you want and is only accessible within the scope of the file in which you declare it.) For example:

res/menu/main_activity_actions.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
     
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
   
<!-- Search, should appear as action button -->
   
<item android:id="@+id/action_search"
         
android:icon="@drawable/ic_action_search"
         
android:title="@string/action_search"
         
yourapp:showAsAction="ifRoom"  />
    ...
</menu>


>>>>为Activity增加返回按钮:

 方式1:隐式的进行绑定

   先配置Activity,包括它的父Activity(也就是它返回跳转到的那个Activity)

<!-- A child of the main activity -->
<activity
   android:name=".Activity2"
   android:label="@string/title_activity_display_message"
   android:parentActivityName=".MainActivity" >
   <!-- Parent activity meta-data to support 4.0 and lower -->
   <meta-data
       android:name="android.support.PARENT_ACTIVITY"
       android:value=".MainActivity" />
</activity>

    然后

(Bundle savedInstanceState) {
    .onCreate(savedInstanceState)setContentView(R.layout.)getSupportActionBar().setDisplayHomeAsUpEnabled()}

 
》》Styling the Action Bar(做出有风格的ActionBar)

 1.Use an Android Theme     

   ###不使用支持库的情况

 2.Customize the Background


 3.Customize the Text Color

 

 4.Customize the Tab Indicator

 上面的我也没有写,具体请看谷歌文档Develop-Training-Adding Action Bar-Styling the ActionBar


>>Overlaying the Action Bar(使ActionBar堆叠在主面板之上)

 这样做的好处:一旦ActionBar hide或者show的时候,不会引起主界面的重绘,效率高。

 需要考虑的一个问题:主面板要设置个margin,不让ActionBar遮盖住主界面。

android:paddingTop="?android:attr/actionBarSize"





      本文转自屠夫章哥  51CTO博客,原文链接:http://blog.51cto.com/4259297/1715680,如需转载请自行联系原作者



  

相关文章
|
7月前
|
数据可视化 定位技术 Sentinel
如何用Google Earth Engine快速、大量下载遥感影像数据?
【2月更文挑战第9天】本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,批量下载指定时间范围、空间范围的遥感影像数据(包括Landsat、Sentinel等)的方法~
2612 1
如何用Google Earth Engine快速、大量下载遥感影像数据?
|
7月前
|
编解码 人工智能 算法
Google Earth Engine——促进森林温室气体报告的全球时间序列数据集
Google Earth Engine——促进森林温室气体报告的全球时间序列数据集
95 0
|
7月前
|
编解码 人工智能 数据库
Google Earth Engine(GEE)——全球道路盘查项目全球道路数据库
Google Earth Engine(GEE)——全球道路盘查项目全球道路数据库
159 0
|
7月前
|
编解码
Open Google Earth Engine(OEEL)——matrixUnit(...)中产生常量影像
Open Google Earth Engine(OEEL)——matrixUnit(...)中产生常量影像
80 0
|
7月前
Google Earth Engine(GEE)——导出指定区域的河流和流域范围
Google Earth Engine(GEE)——导出指定区域的河流和流域范围
283 0
|
7月前
|
传感器 编解码 数据处理
Open Google Earth Engine(OEEL)——哨兵1号数据的黑边去除功能附链接和代码
Open Google Earth Engine(OEEL)——哨兵1号数据的黑边去除功能附链接和代码
137 0