Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> [android] 標題部分管理,android標題

[android] 標題部分管理,android標題

編輯:關於android開發

[android] 標題部分管理,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);
    }
}

 

 

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>

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved