1.Hotseat 主要判断是否显示标题在CellLayout.java这个方法中,第627行判断隐藏和显示
public boolean addViewToCellLayout(View child, int index, int childId, LayoutParams params,
621 boolean markCells) {
622 final LayoutParams lp = params;
623
624 // Hotseat icons - remove text
625 if (child instanceof BubbleTextView) {
626 BubbleTextView bubbleChild = (BubbleTextView) child;
627 bubbleChild.setTextVisibility(bubbleChild.shouldTextBeVisible());
628 }
629
630 child.setScaleX(mChildScale);
631 child.setScaleY(mChildScale);
2.在BubbleTextView.java中,增加判断是否在桌面图标
public boolean shouldTextBeVisible() {
443 // Text should be visible everywhere but the hotseat.
444 Object tag = getParent() instanceof FolderIcon ? ((View) getParent()).getTag() : getTag();
445 ItemInfo info = tag instanceof ItemInfo ? (ItemInfo) tag : null;
446 return info == null || info.container != LauncherSettings.Favorites.CONTAINER_DESKTOP || info.container != LauncherSettings.Favorites.ITEM_TYPE_SHORTCUT;
447 }
3.现在是可以显示出标题的,但是没有标题的显示空间,在DeviceProfile.java中,找到hotseatCellHeightPx的赋值。
377 // Hotseat
378 if (isVerticalBarLayout()) {
379 hotseatBarSizePx = iconSizePx;
380 }
381 hotseatCellHeightPx = iconSizePx + 40;
4.还有一个文件夹的hotseat显示,在Workspace.java中,addInScreen()中,有注释说隐藏了文件夹的标题,改下true就ok了。
// Hide folder title in the hotseat
1083 if (child instanceof FolderIcon) {
1084 ((FolderIcon) child).setTextVisible(true);
1085 }
5.CellLayout.java文件下修改
--- a/src/com/android/launcher3/CellLayout.java
+++ b/src/com/android/launcher3/CellLayout.java
@@ -606,7 +606,7 @@ public class CellLayout extends ViewGroup implements BubbleTextShadowHandler {
// Hotseat icons - remove text
if (child instanceof BubbleTextView) {
BubbleTextView bubbleChild = (BubbleTextView) child;
- bubbleChild.setTextVisibility(mContainerType != HOTSEAT);
+ bubbleChild.setTextVisibility(true);
}
child.setScaleX(mChildScale);