[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);
}
}
- 使用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>

[android] 标题部分管理的更多相关文章
- Android TelephonyManager电话管理器
今天介绍一下Android的电话管理器--TelephonyManager,TelephonyManager管理手机通话状态.电话网络信息的服务类,获取TelephonyManager: Teleph ...
- android 进程/线程管理(一)----消息机制的框架
一:android 进程和线程 进程是程序运行的一个实例.android通过4大主件,弱化了进程的概念,尤其是在app层面,基本不需要关系进程间的通信等问题. 但是程序的本质没有变,尤其是多任务系统, ...
- android 进程/线程管理(二)----关于线程的迷思
一:进程和线程的由来 进程是计算机科技发展的过程的产物. 最早计算机发明出来,是为了解决数学计算而发明的.每解决一个问题,就要打纸带,也就是打点. 后来人们发现可以批量的设置命令,由计算机读取这些命令 ...
- android 进程/线程管理(三)----Thread,Looper / HandlerThread / IntentService
Thread,Looper的组合是非常常见的组合方式. Looper可以是和线程绑定的,或者是main looper的一个引用. 下面看看具体app层的使用. 首先定义thread: package ...
- android 进程/线程管理(四)续----消息机制的思考(自定义消息机制)
继续分析handler 和looper 先看看handler的 public void dispatchMessage(Message msg) { if (msg.callback != null) ...
- android 进程/线程管理(四)----消息机制的思考(自定义消息机制)
关于android消息机制 已经写了3篇文章了,想要结束这个系列,总觉得少了点什么? 于是我就在想,android为什么要这个设计消息机制,使用消息机制是现在操作系统基本都会有的特点. 可是andro ...
- android的布局管理器
理论上通过setContentView(view)能够把一个view设置到activity中,但当你有很多个view控件的时候,就需要用android的布局管理器来管理view控件了. android ...
- Android 核心分析之十二Android GEWS窗口管理之基本架构原理
Android GWES之窗口管理之基本构架原理 Android的窗口管理是C/S模式的.Android中的Window是表示Top Level等顶级窗口的概念.DecorView是Window的To ...
- Android 之 内存管理-查看内存泄露(三)
概述 在android的开发中,要时刻主要内存的分配和垃圾回收,因为系统为每一个dalvik虚拟机分配的内存是有限的,在google的G1中,分配的最大堆大小只有16M,后来的机器一般都为24M,实在 ...
随机推荐
- Camel Games借助AWS在爆发式增长中提供优质游戏体验
关于Camel Games Camel Games 成立于2009年,是中国首家得到google市场官方认证的顶尖开发公司.长期以来,Camel Games始终依靠于率先的技术背景,致力于成为国际一流 ...
- luoguP4513 小白逛公园
https://www.luogu.org/problemnew/show/P4513 题意是给你一个序列,计算一个区间内的最大字段和,支持单点修改 线段树维护左起最大字段和,右起最大字段和,区间和和 ...
- 点击按钮添加一行,和本行的删除功能,序号变动,name属性更改
<!--html结构--> <div> <input type="button" value="添加一行" onclick=&qu ...
- P4365 [九省联考2018]秘密袭击coat
$ \color{#0066ff}{ 题目描述 }$ Access Globe 最近正在玩一款战略游戏.在游戏中,他操控的角色是一名C 国士 兵.他的任务就是服从指挥官的指令参加战斗,并在战斗中取胜. ...
- c语言-求完全数的一个算法
#include<iostream> #include<math.h> using namespace std; int main() { int n,i,j=0,k,a[10 ...
- [web]Servlet中的Listener和Filter
建议先看看 ——> Servlet工作原理 一.Listener 在Tomcat服务中,Listener的设计是基于观察者模式的,目前在Servlet中提供6中两类事件的观察者接口,它们分别是: ...
- POJ1330 Nearest Common Ancestors (JAVA)
经典LCA操作.. 贴AC代码 import java.lang.reflect.Array; import java.util.*; public class POJ1330 { // 并查集部分 ...
- 关于云主机Thinkphp框架Session跨页失效的问题
在网站部署到云主机之后,前台一直能够正常显示,后台确登录不上去,验证码也无法显示,研究半天,才确定是Session跨页传递失效的问题.找网上各种解决方法,都是关于Php.ini文件的设置,可又解决不了 ...
- 进阶篇:2)DFMA方法的运用
本章目的:DFMA方法运用,引导后面的章节.(运用比只理解重要!) 1.DFMA概述 1.1 DFMA的由来 工艺粗略可分为装配工艺和制造工艺.在这里,我们所讲的“制造”是指产品或部件的某个零件的制造 ...
- 爱漂泊人生 30个php操作redis常用方法代码例子
http://www.justwinit.cn/post/8789/ 背景:redis这个新产品在sns时很火,而memcache早就存在, 但redis提供出来的功能,好多网站均把它当memcach ...