0%

ChatGPT 5 Pro 输出

适用:本地需要为同一个 manifest/远端地址准备多个分支的源码副本,并希望最大化复用磁盘空间
关键点:repo init --mirror 只是创建裸仓库镜像;真正让多个副本/分支共享对象、节省空间的,是配合 --reference 或在单一客户端用 --worktree

Read more »

ChatGPT 5 Pro 输出

View 系统里“能动阴影”的所有开关:每个参数/方法是什么、调大/调小会发生什么、以及如何组合它们把设计稿(Figma/Sketch 的 X、Y 偏移、模糊半径、颜色/透明度)还原。示例默认 API 28+(Android 9 起支持彩色阴影)。


Read more »

repo项目根目录下执行 (会根据 manifest.xml 排除定义的所有 project ) :

新建sh文件

nano repo.sh

写入以下内容

#!/usr/bin/env bash

# 输出文件路径
OUTFILE=".repo/local_manifests/exclude_projects.xml"

# 确保 .repo/local_manifests 目录存在
mkdir -p .repo/local_manifests

# 初始化 exclude_projects.xml 文件
cat > "$OUTFILE" <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
EOF

# 从 .repo/manifest.xml 中提取 include 文件名
includes=$(grep "<include " .repo/manifest.xml | sed -n 's/.*name="\([^"]*\)".*/\1/p')

# 遍历所有 include 的文件
for inc in $includes; do
incfile=".repo/manifests/$inc"
if [ -f "$incfile" ]; then
# 提取 incfile 中的 <project> 标签并生成 remove-project
grep "<project " "$incfile" | while read line; do
name=$(echo "$line" | sed -n 's/.*name="\([^"]*\)".*/\1/p')
if [ -n "$name" ]; then
echo " <remove-project name=\"$name\" />" >> "$OUTFILE"
fi
done
else
echo "警告:未找到被 include 的文件 $incfile"
fi
done

# 关闭 manifest 标签
echo "</manifest>" >> "$OUTFILE"
echo "处理完成,请查看 $OUTFILE 文件。"

添加权限,然后执行

chmod +x repo.sh
./repo.sh

纯 Flutter 开发应该不会遇到这个问题,但是如果是已有一个原生工程中集成 Flutter,在 Activity 里面内嵌 FlutterView,当屏幕旋转、键盘弹出等导致 FlutterView 容器大小出现突变时,Flutter 界面会有很明显的拉伸。

先说解决方案

固定宽高

不修改 Flutter 引擎最稳妥的解决方案。宽高不要设置为 MATCH_PARENT (根据实际情况,不会突变的可以设置为 MATCH_PARENT), 而是设置为固定值。在 Flutter 侧底部或者右边留空白 Container,通过动态控制 Container 的宽高来实现业务效果,如业务视图的高度变化。如果是键盘场景,原生通过把键盘高度传递给 Flutter,让空白 Container 的高度跟键盘高度一致来控制输入框的弹起。

Read more »