Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android 自定義標題欄

android 自定義標題欄

編輯:關於Android編程

用到的兩個png圖片

editsend

首先是自定義theme,不能用默認的主題,會報錯;you cannot combined....。修改res/values/styles.xml:


上面提供了兩種方法:在默認的AppTheme下添加
 false
或者自定義theme

 

推薦自定義theme,因為可以設置標題欄大小,背景色等屬性

然後在AndroidMainfest.xml裡修改引用的主題:

 

    
然後在res/layout下新建custom_title.xml自定義標題欄布局:

 


這裡加layout_weight屬性設置權重1:3:1的權重布局,layout_width設置為0dp,它會根據權重來獲取寬度.

 

然後在MainActivity.java onCreate加入如下代碼:

 

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.activity_main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title);

實際效果如下:

但是我卻發現它剛開始是顯示的是沒有加載custom_title.xml布局的標題欄,然後才顯示加載custom_title.xml布局的標題欄。

我猜測可能是

 

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.activity_main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title);
這三行代碼,第一行是聲明要是用自定義的標題欄,但並為加載,第二句直接顯示主界面,第三句才加載自定義的布局文件,所以這種方法並不好。

 

所以我們需要在主布局文件activity_main.xml裡就加入自定義的標題欄布局

 

還需要設置theme為無標題欄,在res/values/styles.xml test主題下修改:

 

那麼在MainActivity.java就不用修改了, onCreate方法裡刪除之前加的兩句代碼:

 

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 

getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title);
這樣就不會在剛開始啟動的時候沒有加載自定義標題欄。

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved