• [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();
            }
        }
    <?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>

     

  • 相关阅读:
    第一次冲次(补)
    软件工程概论个人总结
    第16周进度条
    读《梦断代码》第2章有感
    java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
    传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 1 (""): 数据类型 0x38 未知。
    怎么卸载VS2005呢?控制面板里内容太多,找不出哪些是属于VS2005?我的VS2005出问题了
    常用正则表达式的写法
    Http响应头字段详解,MyEclipse配置tomcat,servlet运行方式
    html框架 字体颜色 列表 表格 图片 定义列表 a标签
  • 原文地址:https://www.cnblogs.com/taoshihan/p/5620097.html
Copyright © 2020-2023  润新知