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