[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>
十年开发经验程序员,离职全心创业中,历时三年开发出的产品《唯一客服系统》
一款基于Golang+Vue开发的在线客服系统,软件著作权编号:2021SR1462600。一套可私有化部署的网站在线客服系统,编译后的二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的全渠道在线客服系统,致力于帮助广大开发者/公司快速部署整合私有化客服功能。
开源地址:唯一客服(开源学习版)
官网地址:唯一客服官网