WeightDouble116 长按事件统计
项目目录:/Users/liang/AndroidStudioProjects/WeightDouble116
背景
本设备不支持长按操作。当前先仅统计 WeightDouble116 项目中涉及长按的地方,后续如需实施,再将这些交互改为点击或其他可用交互。
搜索范围
app/src/main/javaapp/src/main/resapp/src/androidTestapp/src/test
搜索关键字:setOnLongClickListener、OnLongClickListener、onLongClick、setOnItemLongClickListener、OnItemLongClickListener、onItemLongClick、longClickable、performLongClick、LongClick、长按
统计结果
共发现 4 处真实长按事件。
1. 标题栏 logo 打开管理员密码弹窗 管理入口
文件:/Users/liang/AndroidStudioProjects/WeightDouble116/app/src/main/java/com/cpt/zhct/weighting/activity/BaseActivity.java
位置:第 136 行 mIconIV.setOnLongClickListener(...);第 138 行 onLongClick(...)
当前功能:在标题栏样式为首页样式时,长按 CPT/logo 图标打开 CustomManagerPwdInputDialog 管理员密码弹窗。
建议改造:可直接改为点击 logo 打开管理员密码弹窗。
风险点:入口会从隐藏长按变为普通点击,误触概率上升。若仍希望隐藏入口,可改为多次点击触发,例如沿用项目已有的 ClickMonitor。
2. 首页左下角进入排菜 隐藏入口
文件:/Users/liang/AndroidStudioProjects/WeightDouble116/app/src/main/java/com/cpt/zhct/weighting/activity/HomeActivity.java
位置:第 191 行 home_go_set_dish_view.setOnLongClickListener(...);第 193 行 onLongClick(...)
当前功能:首页左下角隐藏区域长按进入 DishSetActivity 排菜页面,并写入本地日志。
建议改造:可直接改为点击左下角隐藏区域进入排菜页面。
风险点:这是隐藏入口,改为点击后误触风险明显增加。若 UI 后续按 WeightSingle116 风格改造,建议将入口设计成明确按钮或放入标题栏/设置入口,而不是继续使用透明隐藏点击区。
3. 未排菜页左下角进入排菜 隐藏入口
文件:/Users/liang/AndroidStudioProjects/WeightDouble116/app/src/main/java/com/cpt/zhct/weighting/activity/UnSetDishActivity.java
位置:第 54 行 go_set_dish_view.setOnLongClickListener(...);第 56 行 onLongClick(...)
当前功能:未排菜页面左下角隐藏区域长按进入 DishSetActivity 排菜页面,并上传跳转日志。
建议改造:可直接改为点击左下角隐藏区域进入排菜页面。
风险点:日志文案当前为“长安左下角去排菜”,后续实施时建议同步修正为“点击左下角去排菜”。
4. 排菜菜谱条目长按删除 交互冲突
文件:/Users/liang/AndroidStudioProjects/WeightDouble116/app/src/main/java/com/cpt/zhct/weighting/fragment/dishSet/DishSetDishMenuFragment.java
位置:第 479 行 mGridView.setOnItemLongClickListener(...);第 481 行 onItemLongClick(...)
当前功能:排菜菜谱 GridView 中,长按菜品条目弹出删除确认框:showDeletePop(uuid, name)。
建议改造:不要简单把长按删除改成普通单击删除,因为同一个 GridView 条目当前已经使用普通点击做“选择/取消选择菜品”。
可选方案:点击已选中的菜品时弹出删除确认;在菜品 item 上增加一个显式删除按钮;在菜品详情或更多菜单中提供删除入口。
推荐方案:增加显式删除按钮最清晰;如果短期改动要小,可以采用“再次点击已选中菜品时弹出删除确认”,但会改变原来的取消选择行为,需要产品确认。
未发现项
- 未发现 XML 中的
android:longClickable。 - 未发现
performLongClick调用。
后续实施原则
- 所有长按入口改造前先确认是否属于隐藏管理入口。
- 管理类隐藏入口不宜全部改成单击,可优先改成多次点击触发。
- 与已有点击选择冲突的长按删除,不应直接改成单击删除。
- 实施后需重新搜索上述关键字,确保无长按残留。
已实施记录
实施分支:codex/weightdouble116-single-style-clicks
实施时间:2026-05-18
已将上述长按事件改为当前设备支持的点击交互:
BaseActivity.java:标题栏 logo 从长按打开管理员密码弹窗,改为点击打开。HomeActivity.java:首页左下角排菜入口从长按进入排菜,改为点击进入排菜。UnSetDishActivity.java:未排菜页左下角排菜入口从长按进入排菜,改为点击进入排菜,并将日志文案改为“点击左下角去排菜”。DishSetDishMenuFragment.java:删除菜品从 GridView 条目长按触发,改为点击已选中的菜品时弹出删除确认。该实现不新增 UI,但会改变原本“再次点击已选中菜品取消选择”的行为,后续如需更稳妥体验,建议改成菜品条目显式删除按钮。
验证:已重新搜索长按相关关键字,无残留;已使用 Java 8 执行 sh gradlew :app:assembleDebug,构建成功。