android 8.1 系统MTK平台, Launcher3显示出hotseat的title

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);

你可能感兴趣的:(android)