- 标题分类
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); }}
- 使用ActionBar
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(); } }