因客户需求,桌面布局表面显示5个app图标,但要在上滑进入抽屉后,只显示4个图标,故做以下修改
\packages\apps\Launcher3\src\com\android\launcher3\allapps\AllAppsContainerView.java
源码:
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
DeviceProfile grid = mLauncher.getDeviceProfile();
// Update the number of items in the grid before we measure the view
grid.updateAppsViewNumCols();
if (mNumAppsPerRow != grid.inv.numColumns ||
mNumPredictedAppsPerRow != grid.inv.numColumns) {
mNumAppsPerRow = grid.inv.numColumns;
mNumPredictedAppsPerRow = grid.inv.numColumns;
mAppsRecyclerView.setNumAppsPerRow(grid, mNumAppsPerRow);
mAdapter.setNumAppsPerRow(mNumAppsPerRow);
mApps.setNumAppsPerRow(mNumAppsPerRow, mNumPredictedAppsPerRow);
if (Utilities.isAllAppsLetterSupport()) {
setScrollBarLetters();
}
}
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
修改后的代码:
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
DeviceProfile grid = mLauncher.getDeviceProfile();
// Update the number of items in the grid before we measure the view
grid.updateAppsViewNumCols();
if (mNumAppsPerRow != grid.inv.numColumns ||
mNumPredictedAppsPerRow != grid.inv.numColumns) {
mNumAppsPerRow = grid.inv.numColumns;
mNumPredictedAppsPerRow = grid.inv.numColumns;
//mAppsRecyclerView.setNumAppsPerRow(grid, mNumAppsPerRow);
mAppsRecyclerView.setNumAppsPerRow(grid, 4);//这里是强制写4个图标
//mAdapter.setNumAppsPerRow(mNumAppsPerRow);
mAdapter.setNumAppsPerRow(4);//这里是强制写4个图标
//mApps.setNumAppsPerRow(mNumAppsPerRow, mNumPredictedAppsPerRow);
mApps.setNumAppsPerRow(4, mNumPredictedAppsPerRow);//这里是强制写4个图标
if (Utilities.isAllAppsLetterSupport()) {
setScrollBarLetters();
}
}
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}