1. 程式人生 > >使用setCustomView建立標題居中的自定義ActionBar

使用setCustomView建立標題居中的自定義ActionBar

ActionBar因為溢位選單的原因導致沒有辦法讓標題居中,但是我們又經常有樣式需要標題居中,所以使用自定義ActionBar的佈局是最正確的選擇,可以在xml佈局檔案中進行檢視的定製。

定製使用到的api是ActionBar中提供的 void setCustomView(View) 函式。

定義的檢視是這個樣子的:


標題終於居中了。

這裡沒有涉及到任何ActionBar的style修改,也只有一個activity;

MainActivity.java

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 返回箭頭(預設不顯示)
		 getActionBar().setDisplayHomeAsUpEnabled(false);
		// 左側圖示點選事件使能
		getActionBar().setHomeButtonEnabled(true);
		// 使左上角圖示(系統)是否顯示
		getActionBar().setDisplayShowHomeEnabled(false);
		// 顯示標題
		getActionBar().setDisplayShowTitleEnabled(false);
		//顯示自定義檢視
		getActionBar().setDisplayShowCustomEnabled(true);
		View actionbarLayout = LayoutInflater.from(this).inflate(
				R.layout.actionbar_layout, null);
		getActionBar().setCustomView(actionbarLayout);
	}
}

actionbar_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_vertical"
    android:paddingLeft="10dp"
    android:paddingRight="10dp" >


    <ImageButton
        android:id="@+id/left_imbt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:background="@null"
        android:src="@drawable/b" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:textColor="#FFFFFFFF"
        android:textSize="18sp"
        android:text="標題" />
    <!-- actionbar 右邊按鈕 -->

    <ImageButton
        android:id="@+id/right_imbt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:background="@null"
        android:src="@drawable/k" />

</RelativeLayout>
補充兩個用到的圖示,透明白色圖示(白色圖示看不到,在空白處點選另存為就好)

b.png:;k.png


雖然只有這兩個檔案用到和修改到,但是最小的版本也要支援ActionBar;

這裡補充一下setHomeButtonEnabled函式,控制左上角圖示是否顯示出來,小於4.0版本的預設值為true的。在4.0及其以上預設值是false;

本文來自CSDN部落格 轉載請聯絡作者
並註明出處http://blog.csdn.net/dreamintheworld/article/details/39314121

相關推薦

使用setCustomView建立標題居中定義ActionBar

ActionBar因為溢位選單的原因導致沒有辦法讓標題居中,但是我們又經常有樣式需要標題居中,所以使用自定義ActionBar的佈局是最正確的選擇,可以在xml佈局檔案中進行檢視的定製。 定製使用到的api是ActionBar中提供的 void setCustomView(

定義ActionBarActionBar標題居中

                actionBar = getActionBar();                actionBar.show();                // 返回箭頭(預設不顯示)                 actionBar.setD

定義ActionBar標題與選單中的文字樣式

自定義標題文字樣式 標題樣式是ActionBar樣式的一部分,所以要先定義ActionBar的樣式 <stylename="AppTheme" parent="AppBaseTheme">     <itemname="android:actionBar

定義ActionBar的高度、標題與選單中的文字樣式

自定義ActionBar高度 通過actionBarSize設定了ActionBar的高度 <style name="AppTheme" parent="AppBaseTheme"> <item name="android:act

如何定義ActionBar顯示標題在中間位置

     在Android3.0以後就開始引入了ActionBar了,這篇重點記錄如何自定義ActionBar讓標題顯示在中間的位置。雖然android手機有自帶的返回鍵,不過當今很多應用還是新增actionbar顯示標題在中間,在左側加入一個返回按鈕。     新增一個A

微信網頁分享標題圖片定義設置(最新)

內容 outline 朋友圈 exe ech pem read 解決方法 highlight 1 前言 剛好有微信網頁分享標題圖片自定義設置這個需求,然後查找文檔,發現有兩種方案[1],但是第一種方案已經失效了,只能走第二種方案,然後根據實戰配置好了,本文會寫上配置中遇到的

定義Actionbar

最近在專案中大量使用actionbar,所以把自定義的一些屬性總結一下。 效果如下: 1、自定義actionbar 在theme的style中設定 <item name="android:actionBarStyle">@style/CustomActionBar&

javascript 建立並匯入定義

//先建立一個js格式寫入 //建立物件 function $(){     return new Base(); } function Base(){     this.ele=[];//儲存節點物件 } //新增方法 Base.prototype.getID=fu

執行緒建立 pthread_create 中定義引數注意事項

1. 函式原型 int pthread_create(pthread_t *thread, const pthread_attr_t *attr,          void *(*start_routine) (void *), void *arg); 本文主要討論最後一個引數,同時傳遞多個的問題

C#-XML檔案提取字串+字串存為XML檔案+建立XML(定義節點)檔案+讀取節點內容

一、將字串寫入xml檔案(並儲存) 寫入:  XmlDocument xdoc = new XmlDocument();  xdoc.LoadXml(“xmlstring”); 儲存:  xdoc.Save(“pathsave.xml”) 二、將

(七)Flutter 佈局 建立小部件 定義view 關於佈局的一些屬性 mainAxis SizeBox Alignment stack AspectRatio ConstrainedBox

主要內容 建立LayoutDemo小部件 建立可配置圖示徽章IconBadege 小部件 Row與Column mainAxis:主軸與crossAxis 交叉軸 SizeBox 固定尺寸的盒子 Alignment 對齊 stack 一摞小部件

vue-cli中如何建立並引入定義元件

vue-cli中如何建立並引入自定義元件 1.在components(專門放元件的檔案)下建立一個header.vue檔案 2.在App.vue檔案裡新增如下程式碼    <my-head></my-head>   &nbs

建立Package及定義CMakeList.txt

    建立Packages 1、Packages組成       catkin工作區的包必須包含三部分:package.xml、CMakeLists.txt以及每個包單獨的目錄(資料夾)       最簡單的包如下所示的結構: my_package/ CMake

storyboard建立一個使用者定義的cell注意的問題

1. tableviewcell風格選custom 2. identifier必須指定(我的自定義為:dataCellID),cell初始化時必須指定到該identifier let dataCellID: String = "dataCellID" var cell =

居中定義長度三欄佈局

<div style="display:flex;justify-content: center;"> <div style="text-align:right;display: flex;align-items: center;padding-right

利用 .NET Framework 2.0 建立並宿主定義的設計

釋出日期: 2006-6-15 | 更新日期: 2006-6-15 本文討論: • 瞭解設計器和服務

定義ActionBar的兩種方式(靜態&動態)

說明 Android 3.0及以上已經有了ActionBar的API,有了ActionBar的API之後可以隨意自定義自己漂亮的ActionBar了 基本知識瞭解 1.Actionbar’s API 1.1 setHomeButtonEnable

js建立物件 三 定義構建函式建立物件

<!DOCTYPE html> <html lang="en"> <head>   <meta charset="UTF-8">   <title>$永遠的24k純帥$</title>   <

定義ActionBar 左邊距為0

在開發中,如果需要自定義ActionBar,或者使用ToolBar 的時候,都會發現,在ActionBar的左邊有 一塊區域覆蓋不到,如下圖:   這種情況是因為ActionBar有預設的內部左右邊距,如果要去掉這個區域,只需加上以下程式碼即可 如果是自定義Acti

定義ActionBar -- 更換返回鍵圖示

實現上述自定義的返回鍵圖示,且圖片隨按下圖示而變化。 1 準備好倆個返回鍵圖片,利用selector設定,在不同狀態下,呼叫不同圖片。 在drawble資料夾下定義一個menu_back_bg.xml檔案: <?xml version="1.0" encodi