[android] 標題部分管理,android標題
1.1 普通標題
1.1.1 標題內容管理
1.1.2 協助和返回的按鈕
1.2 未登入的標題
1.3 登陸中的標題
1.4 登陸完成後的標題
package com.tsh.lottery.view.manager;import com.tsh.lottery.R;import android.app.Activity;import android.view.View;import android.widget.RelativeLayout;/** * 標題管理 * @author taoshihan * */public class TitleManager { private RelativeLayout generalTitle,unloginTitle,loginTitle; private static TitleManager instance=new TitleManager(); private TitleManager(){} public static TitleManager getInstance(){ return instance; } /** * 初始化標題 * @param activity */ public void init(Activity activity){ generalTitle=(RelativeLayout) activity.findViewById(R.id.title_general); loginTitle=(RelativeLayout) activity.findViewById(R.id.title_login); unloginTitle=(RelativeLayout) activity.findViewById(R.id.title_unlogin); } /** * 隱藏所有標題 */ public void hideTitle(){ generalTitle.setVisibility(View.GONE); unloginTitle.setVisibility(View.GONE); loginTitle.setVisibility(View.GONE); } /** * 顯示通用的標題 */ public void showGeneralTitle() { hideTitle(); generalTitle.setVisibility(View.VISIBLE); } /** * 顯示未登入的標題 */ public void showUnloginTitle() { hideTitle(); unloginTitle.setVisibility(View.VISIBLE); } /** * 顯示已經登陸的標題 */ public void showLoginTitle() { hideTitle(); loginTitle.setVisibility(View.VISIBLE); }}
2.1 清單文本配置
2.2 建立menu資源檔
2.3 Activity中設定
資訊清單檔:
設定主題是Theme.Holo下面的就可以
<application android:theme="@android:style/Theme.Holo.Light" >
菜單檔案:
item裡面的showAsAction屬性必須填,例如:always是總是顯示的意思,never不顯示
actionViewClass 屬性,可以設定View控制項,例如:android.widget.SearchView 是顯示搜尋
解決overflow的按鈕不可見問題:
當存在物理menu鍵的時候,會出現這個問題,只有按物理menu鍵,隱藏的按鈕從下面出來
使用反射修改ViewConfiguration類的sHasPermanentMenuKey靜態變數
/** * 添加菜單 */ @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater=getMenuInflater(); inflater.inflate(R.menu.menu, menu); return super.onCreateOptionsMenu(menu); } /** * 解決ActionBar的問題 */ public void setOverflowMenuQues(){ ViewConfiguration viewConfiguration=ViewConfiguration.get(this); try { Field field=ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey"); field.setAccessible(true); field.setBoolean(viewConfiguration, false); } catch (Exception e) { e.printStackTrace(); } }
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/menu_search" android:actionViewClass="android.widget.SearchView" android:showAsAction="always" android:title="搜尋"/> <item android:showAsAction="always" android:id="@+id/menu_user" android:title="使用者"/> <item android:showAsAction="never" android:id="@+id/menu_cart" android:title="購物"/> <item android:showAsAction="always" android:id="@+id/menu_edit" android:title="編輯"/> <item android:showAsAction="never" android:id="@+id/menu_setting" android:title="設定"/></menu>