微信6.0界面开发学习

来源:互联网 发布:湖南云箭集团知乎 编辑:程序博客网 时间:2024/06/04 19:07

【前言】
最近观看了幕课网的仿制微信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

0 0
原创粉丝点击