微信6.0界面開發學習

【前言】
最近觀看了幕課網的仿製微信6.0界面的視頻,記錄一些學習中碰到的問題,方便自己以後總結,學習。

【開發環境】
Eclipse +Android Developer Tools+bluestack調試

【Actionbar】

一、什麼是ActionBar

效果圖

二、如何使用ActionBar

**1、添加操作項,即圖中文字所在位置**

效果圖

**2.代碼調用**
@Override
    public boolean onCreateOptionsMenu(Menu menu) { 
        getMenuInflater().inflate(R.menu.main, menu);
        return true; 
    } 
**3.項目的增加以及刪除在menu目錄下的main.xml**

效果圖

三、遇到的問題

***1.menu圖標不顯示***

    解決方法 爲actionbar添加樣式
    步驟1:在AndroidMainfest中用ctrl+鼠標左鍵點擊theme進入到style

效果圖

<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- API 14 theme customizations can go here. -->
        <item name="android:actionOverflowButtonStyle">@style/weixinActionOverflowButtonStyle</item>
    </style>

    <style name="weixinActionOverflowButtonStyle">
        <item name="android:src">@drawable/actionbar_add_icon</item>
    </style>

自定義方法強制顯示OverflowButton

private void setOverflowButtonAlways() {
        // TODO Auto-generated method stub
        try
        {
            ViewConfiguration config = ViewConfiguration.get(this);
            Field menuKey = ViewConfiguration.class
                    .getDeclaredField("sHasPermanentMenuKey");
            menuKey.setAccessible(true);
            menuKey.setBoolean(config, false);
        } catch (Exception e)
        {
            e.printStackTrace();
        }
    }

在Oncreate中調用並且隱藏標題的icon

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setOverflowButtonAlways();
        getActionBar().setDisplayShowHomeEnabled(false);

    }

顯示Menu中的圖標

“`
//利用了Java的反射機制去修改系統默認設置
public boolean onMenuOpened(int featureId, Menu menu) {
//判斷是否是actionbar且menu是否不等於Null
if(featureId==Window.FEATURE_ACTION_BAR&&menu!=null){
//找到menu的實際實現類MenuBuilder
if(menu.getClass().getSimpleName().equals(“MenuBuilder”)){
try {
//同樣先獲取到需要調用的method setOptionalIconsVisible爲其中的方法
Method m=menu.getClass().
getDeclaredMethod(“setOptionalIconsVisible”,Boolean.TYPE);
//設爲可訪問
m.setAccessible(true);
//調用方法
m.invoke(menu,true);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return super.onMenuOpened(featureId, menu);
}

4.流程以及步驟 “`

1.在工程下values下的string中添加所用到的中文
這裏寫圖片描述
2.在menu文件下的main.xml中設置topbar的item屬性
這裏寫圖片描述
3.使用VIEWPAGE實現控件中間區域可滑動模塊,並在mainactivity中配置fragment

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章