ActionBar 自定义布局定义

 

Android系统中ActionBar默认的布局不美观且难于控制,通过为ActionBar自定义布局的方式可以灵活控制ActionBar。

效果:

工具/原料

  • android studio3.5集成开发环境

  • android sdk 24.0及以上

方法/步骤

    1. 自定义Activity主题和ActionBar样式

      在新建的android工程的res/values/styles.xml添加自定义ActionBar样式的代码和自定义Activity主题的代 码,并在AndroidMainfest.xml中给需要使用该自定义ActionBar的Activity中加入该主题:

      (1)自定义ActionBar样式代码如下:

      <!-- 自定义ActionBar -->
          <style name="me_action_bar"
              parent="@android :style/Widget.Holo.Light.ActionBar">
              <!-- 更改ActionBar背景 -->
              <item name="android:background">#5FBDCB</item>
          </style>

      (2)自定义Activity主题代码如下:

      <!-- 自定义Activity主题 窗口样式 -->
          <style name="ActivityTheme_Light"
              parent="android:Theme.Holo.Light">
              <item name="android:actionBarStyle">@style/me_action_bar</item>
          </style>

      (3)在AndroidManifest.xml文件中需要使用该自定义ActionBar的Activity中加入该主题如下:

      <activity
                  android:theme="@style/ActivityTheme_Light"
                  android:name="com.looookme.actionbardemo.SecondActivity"
                  android:parentActivityName=".MainActivity">
                  <meta-data
                      android:name="android.support.PARENT_ACTIVITY"
                      android:value=".MainActivity"/>
              </activity>

    2. 在Activity中加载ActionBar的自定义布局

      (1)ActionBar加载自定义布局的代码封装如下:

      private void setActionBarLayout(int layoutId) {
              // TODO Auto-generated method stub
              ActionBar actionBar =getSupportActionBar();

      if(null != actionBar){
                  actionBar.setDisplayShowHomeEnabled(false);
                  actionBar.setDisplayShowCustomEnabled(true);
                  
                  LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                  View v = inflater.inflate(layoutId, null);
                  ActionBar.LayoutParams lParams = new ActionBar.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
                  actionBar.setCustomView(v, lParams);
              }
              
          }

      (2)在onCreate()方法中调用该方法,并传入自定义的布局文件ID:

      @Override
          protected void onCreate(Bundle savedInstanceState) {
              // TODO Auto-generated method stub
              super.onCreate(savedInstanceState);
              
              setActionBarLayout(R.layout.actionbar_layout);
          }

      (3)自定义布局文件“actionbar_port_layout.xml ”代码如下:

      <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout
          xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="44dp"
          android:orientation="horizontal"
          android:gravity="center_vertical"
          android:background="#008000">
          
          <ImageView
              android:layout_marginLeft="24dp"
              android:layout_width="36dp"
              android:layout_height="36dp"
              android:src="@drawable/ic_launcher"/>
          
          <EditText
              android:layout_marginLeft="24dp"
              android:layout_weight="1"
              android:layout_width="0dp"
              android:layout_height="36dp"
              android:hint="Please input "
              android:id="@+id/et_input"/>
          
          <ImageButton
              android:layout_marginRight="20dp"
              android:layout_marginLeft="20dp"
              android:layout_width="30dp"
              android:layout_height="30dp"
              android:src="@drawable/action_search"/>
          
      </LinearLayout>


Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)

Android ActionBar完全解析,使用官方推荐的最佳导航栏(下)

												

ActionBar 自定义布局定义的更多相关文章

  1. AcitonBar 自定义布局

    Android系统中ActionBar默认的布局不美观且难于控制,通过为ActionBar自定义布局的方式可以灵活控制ActionBar. 自定义Activity主题和ActionBar样式 在新建的 ...

  2. actionBarTab-actionBarTab自定义 布局没法改变其中字体相对中间的位置

    我们经常遇到对actionBarTab 进行操作的情况.现在记录修改它的样式的方法,已经如何自定义tab的显示布局 1.在你的theme主题中添加<item name="android ...

  3. 干货之UIButton的title和image自定义布局

    当需要实现一个自定义布局图片和标题的按钮时候,不知道有多少少年直接布局了UIButton,亦或是自定义一个UIView,然后以空白UIButton.UILabel.UIImageVew作为subVie ...

  4. Collection View 自定义布局(custom flow layout)

    Collection view自定义布局 一般我们自定义布局都会新建一个类,继承自UICollectionViewFlowLayout,然后重写几个方法: prepareLayout():当准备开始布 ...

  5. 详细分享UICollectionView的自定义布局(瀑布流, 线性, 圆形…)

    前言: 本篇文章不是分享collectionView的详细使用教程, 而是属于比较’高级’的collectionView使用技巧, 阅读之前, 我想你已经很熟悉collectionView的基本使用, ...

  6. OC - 30.如何封装自定义布局

    概述 对于经常使用的控件或类,通常将其分装为一个单独的类来供外界使用,以此达到事半功倍的效果 由于分装的类不依赖于其他的类,所以若要使用该类,可直接将该类拖进项目文件即可 在进行分装的时候,通常需要用 ...

  7. OC - 29.自定义布局实现瀑布流

    概述 瀑布流是电商应用展示商品通常采用的一种方式,如图示例 瀑布流的实现方式,通常有以下几种 通过UITableView实现(不常用) 通过UIScrollView实现(工作量较大) 通过UIColl ...

  8. Android:创建可穿戴应用 - 自定义布局

    创建自定义布局(Creating Custom Layouts) 本文将介绍如何创建自定义通知以及使用可穿戴UI库来创建自定义布局你同时还需要了解可穿戴设计准则(Wear Design Princip ...

  9. Swift - 使用网格(UICollectionView)的自定义布局实现复杂页面

    网格UICollectionView除了使用流布局,还可以使用自定义布局.实现自定义布局需要继承UICollectionViewLayout,同时还要重载下面的三个方法: 1 2 3 4 5 6 7 ...

随机推荐

  1. python中的logging日志模块

    日志是程序不可或缺的一部分.它可以记录程序的运行情况,帮助我们更便捷地发现问题,而python中的logging日志模块给我们提供了这个机会. logging给我们提供了五种函数用来输出日志:debu ...

  2. sublime——开启自动保存

    前言 懒 步骤 失去焦点自动保存 "save_on_focus_lost": true 首选项-->设置-->Ctrl+F搜索‘save’,找到“save_on_foc ...

  3. jquery锚点跳转

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  4. Storm 安装时 部分supervisor启动成功,并不在web ui上显示

    今天帮公司搭建集群时,发现启动了三个Supervisor 发现只有一个显示在Web UI 上. 于是我就简单地检查了下另外两台没有启动的 storm supervisor的日志, 发现没有报出什么异常 ...

  5. django 第五天 自定义标签 静态文件

    昨日忘记上传,先预留位置,稍后补上

  6. greenplum 下载地址

    一.推荐使用下面下载地址 https://network.pivotal.io/products/pivotal-gpdb#/releases/158026/file_groups/1083 二.官网 ...

  7. RookeyFrame 线上 添加Model

    线上添加好了模块,会在本地生成几个文件 类文件:Rookey.Frame.Web\Config\TempModel\Order_File.code DLL文件:Rookey.Frame.Web\bin ...

  8. js 常见数组算法

    数组方法概述 1.不改变原数组,返回新数组 concat() 连接两个或多个数组,两边的原始数组都不会变化,返回被连接数组的一个副本. join() 把数组中所有元素放入一个字符串中,返回字符串. s ...

  9. 【概率论】6-2:大数定理(The Law of Large Numbers)

    title: [概率论]6-2:大数定理(The Law of Large Numbers) categories: - Mathematic - Probability keywords: - Ma ...

  10. P2016 战略游戏——树形DP大水题

    P2016 战略游戏 树形DP 入门题吧(现在怎么是蓝色标签搞不懂): 注意是看见每一条边而不是每一个点(因为这里错了好几次): #include<cstdio> #include< ...