【前言】
最近觀看了幕課網的仿製微信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