`
fortianwei
  • 浏览: 59694 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Android Launcher2里面的小bug

阅读更多

公司要定制自己的Launcher,于是对源代码里面的Launcher2做下修改。

 

最近需要将workspace每行只显示3个,于是修改了下workspace_screen.xml,将launcher:shortAxisCells="4"改为launcher:shortAxisCells="3",可是一直报错,数组越界了(源码编译出来的之所以没错,因为他就是4行4列,怎么都不会有错的啦)。

 

这个问题好debug,仔细一看,原来记录workspace里面cell状态的mOccupied[][]二维数组是4列3行,但是应该是3列4行才对。

 

找到mOccupied初始化的地方就发现问题了:

 

 

if (mOccupied == null) {
            if (mPortrait) {
                mOccupied = new boolean[mShortAxisCells][mLongAxisCells];
            } else {
                mOccupied = new boolean[mLongAxisCells][mShortAxisCells];
            }
 }

 这里的mPortrait根本没有初始化!!!,只是在以后每次onMeasure里面给其赋值,但是没有初始化就默认到else里面执行了,这样就是默认Landscape即横屏方式的了,难怪。

 

改正很简单,在这句话上面先判断是横屏还是竖屏就行:

 

 

 mPortrait = this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT;
 

 

注意,Portrait也就是竖屏的情况下应该是mOccupied[mShortAxisCells][mLongAxisCells],mShortAxisCells是比较短的那一方向的cell数(竖屏就是横着的方向),mLongAxisCells是比较长的那一方向的cell数(竖屏就是竖着的方向)。

分享到:
评论

相关推荐

    (系统级,不是app)android 4.4 Launcher3 源代码

    (系统级,不是app)android 4.4 Launcher3 源代码

    Android代码-Launcher-master

    基于谷歌官方Android-Pie的Launcher3源码进行修改,打造国内习惯的单层桌面,并添很多新的特性。 分支介绍: release分支:发布分支 feature分支:特性分支,主要是用来开发一些特性的,为不稳定版 develop分支:...

    Laucher 上下左右循环滑动workspace代码修改(新)

    http://www.oschina.net/code/explore/android-2.2-froyo/com/android/launcher2/Workspace.java 但是,此类只能管理固定数目的屏幕,且不能循环滚动。 而且,目前网上搜到的众多修改方案,对滚动处理不够平滑:边界...

    三星启动器Galaxy Launcher

    适用固件:Android4.0+ 更新时间:2015-01-04 软件大小:1023K 银河发射高仿三星的TouchWiz界面,特性: - 自定义的图标大小和图标文字大小 - 支持ADW图标包 - 自定义的桌面网格和网格抽屉 - 锁定,解锁桌面 - ...

    仿Launcher的GridView拖动.zip

    然后将其拖拽其他item上面,使得GridView的item发生交换,比较典型的就是我们的Launcher,网上有很多关于GridView的拖动的Demo,但是大部分都是相同的,而且存在一些Bug,而且大部分都是点击GridView的item然后进行...

    新版Android开发教程.rar

    2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance Alliance Alliance Alliance 什么是开放手机联盟? 开放手机联盟, Open Handset Alliance :是美国 Google 公司与 2007 年 ...

    仿Launcher的GridView拖动

    然后将其拖拽其他item上面,使得GridView的item发生交换,比较典型的就是我们的Launcher,网上有很多关于GridView的拖动的Demo,但是大部分都是相同的,而且存在一些Bug,而且大部分都是点击GridView的item然后进行...

    android扫雷源码

    * ic_launcher-web.png * proguard-project.txt Moved Files: ------------ Android Gradle projects use a different directory structure than ADT Eclipse projects. Here's how the projects were restructured...

    wiserphonelauncher:Dart使用Flutter Framework制作的Android启动器

    Wiser手机启动器Dart使用Flutter Framework编写的Android Launcher。 有关详细信息,请单击此处的我的Linkedln帖子:( )最新版本RSS公告已添加到该启动器中(Bugfix)入门该项目是Flutter应用程序的起点。 如果这...

    Android代码-易于使用的天气应用

    Added App Shortcuts for Launcher Icon (Android 7.1 ) Added Widget Option Added Weather Notification Added Fahrenheit Temperature Option Added Weather Graphs and Maps New Look for Weather Details ...

    360黑科技DroidPlugin.zip

     android:icon="@drawable/ic_launcher"如果你使用自定义的Application,那么你需要在自定义的Application class onCreate和attachBaseContext方法中添加如下代码:@Override public void onCreate() {  ...

Global site tag (gtag.js) - Google Analytics