思路:下拉菜单里的图标都是通过循环一个个 put 创建的,那么我们只要在 put 到旋转图标时拦截它即可

newTiles.put(tileSpec, tile);

//如1处,判断即将要 put 的是旋转图标时就返回!

if (tileSpec.equals("rotation"))
continue;

源码:

@Override
public void onTuningChanged(String key, String newValue) {
//1
++ if (tileSpec.equals("rotation"))
++ continue;
try {
tile = createTile(tileSpec);
if (tile != null) {
tile.setTileSpec(tileSpec);
if (tile.isAvailable()) {
newTiles.put(tileSpec, tile); //put
mQSLogger.logTileAdded(tileSpec);
} else {
tile.destroy();
Log.d(TAG, "Destroying not available tile: " + tileSpec);
mQSLogger.logTileDestroyed(tileSpec, "Tile not available");
}
}
} catch (Throwable t) {
Log.w(TAG, "Error creating tile for spec: " + tileSpec, t);
}
}
}