你的位置:首页 > 操作系统

[操作系统][android] 标题部分管理


  1. 标题分类

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);  }}

 

 

  1. 使用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();    }  }

<??><menu ="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>