微信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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值