Android使用CustomTitle定製標題欄4.0以上的解決辦法
阿新 • • 發佈:2019-02-13
</pre><pre name="code" class="html"><!--Atomu's theme--> <style name="AppThemeWithCustomTitle" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="android:headerBackground">@color/blue</item> <item name="android:windowActionBar">false</item> <item name="android:windowTitleSize">50dp</item> <item name="android:windowTitleBackgroundStyle">@style/TitleBarStyle</item> </style> <style name="TitleBarStyle"> <item name="android:background">@color/blue</item> </style>
首先改變theme, 去掉預設標題欄
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.activity_picture_flow);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.actionbar_picture_flow);
然後在activity中使用自定義的佈局替換標題
新的標題欄中的控制元件只能從該activity中獲取, activity下的fragment無法獲取
另一種方法就是在theme中使用noTitle屬性去掉標題欄然後完全使用自定義......這樣的話按選單鍵會報NullPointerE
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
return true;
}
return super.onKeyDown(keyCode, event);
}
xception, 使用這段程式碼遮蔽掉選單鍵