actionbar、slidingmenu、ViewPager的使用 day04


1. Actionbar

    功能:菜单可视化  back按钮   标题子标题

    SherlockActionbar注意事项

    导入库, 继承SherlockFragmentActivity   主题修改为Theme.Sherlock

    onCreateOptionsMenu()编译出错,Menu类型错,        

     getSupportMenuInflater()

    设置Actionbar属性   


2. SlidingMenu开源项目

    源码中有错误

    修改SlidingFragmentActivity,继承改为SherlockFragmentActivity

    库依赖ABS库

    使用步骤:

    1) 继承SlidingFragmentActivity

    2) setBehindContentView

    3) 设置其他属性,宽度,阴影,


3. Fragment的用法

    作用:Activity的局部,可以动态替换

    创建:新建一个类,继承Fragment(V4)

              重写onCreateView(),关联一个布局 

    使用:Activity要继承FragmentActivity

              在布局中新建一个FrameLayout,设置Fragment的大小和位置

              代码中动态添加/删除/替换

              fm = getSupportFragmentManager()

              ft = fm.beginTransication()

              MyFragment fragment = new MyFragment()

              ft.add(R.id.container, fragment)

             // ft.remove(fragment)

             // ft.repalce(R.id.container, fragment2)

              ft.commit()


二. 项目问题

1. 在res中定义StringArray,在成员变量中初始化,FC

    系统资源初始化的时机

2. SlidingMenu菜单添加动画后,背景颜色

    

三. 项目技术点

1. 使用FragmentPagerAdapter实现ViewPager

    49685FCEC91F407FBFFFC0FD18065018

2. 水平滚动组件HorizontalScrollView

    注意:HorizontalScrollView只能有一个直接的子组件,

              所有组件放到一个布局中。


四. 开发项目模块技巧

     用文字写出每一步需要实现的功能点

     每一步严格测试,保证每一步的代码是正确的

1. 实现水平滑动功能

           用FragmentPagerAdapter实现ViewPager

2. 实现顶部的水平滚动组件

           使用HorizontalScrollView

3. 单击水平滚动组件中的按钮,改变ViewPager的Item

            E4CE1366CD5C45D19FDD26143604979B

4. 滑动ViewPager激活按钮的选中状态

            28BF2EABD3024D8197C5D973B4E1F607

    在onPageSelected()方法中实现

            68A9FA3D8FA741709C912F17BB1A837B

5. 代码中改变Button的背景颜色和文字颜色

            29D05B7448BD4435AA46AC5A5F02BA48

6. ViewPager滚动时,如果被选中按钮不在屏幕中间,

    滚动水平滚动组件,使被选中按钮居中显示

    找准时机:onPageSelected()方法中

            BE645C22DEAE429F90646262A0CB4EF7

7. 隐藏HorizontalScrollView的水平滚动条

            DDDCEB11B14648BD8039A5C6EEF8831C


常见问题:

1.  at com.example.ex_templete.MainActivity.<init>(MainActivity.java:20)

<init>代表构造方法

空指针异常,看日志中的cause by,向下找自己的代码

空指针问题原因是调用了null对象的方法或属性


背景知识:对象的初始化顺序

1) 成员变量

2) 非静态块

3) 构造方法


OO 变量的作用域最小化

规则:所有成员变量的赋值都在onCreate()方法中


2. java.lang.IllegalStateException: commit already called

ft = fm.beginTransaction();

每次动态添加或替换Fragment时需要重新调用


附录

大公司做的App类型:

1. 社交

    腾讯    QQ、微信、QQ空间、

               微博、人人网、陌陌、比邻

2. 平台类

    天猫    京东

    当当、亚马逊、国美在线、苏宁易购   


3. 地图

    百度、高德


4. 安全类

    360   腾讯   百度   乐安全   点心省电   


5. 在线音乐、视频、阅读

    


工具类: 增加了社交 

墨迹天气

美图秀秀

天天动听


5DBCACD6F3C84ADD9AF3A91A1EACD595


将web端网页格式化适配移动端

云适配

http://www.yunshipei.com/


你可能感兴趣的:(项目,动态,主题,新建)