You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Parent View缩放后OnClickListener触摸区域未同步缩放问题及解决方案

问题描述

我有一个RelativeLayout作为父布局,内部包含TextView、SeekBar、Button等子View。调用setScaleX/Y方法后,父布局内的视图视觉上成功缩放,但OnClickListener的触摸区域并未随图形同步缩放,必须点击原位置才能触发点击事件。我希望无需单独缩放子View,即可实现触摸区域随图形同步缩放的效果。

当前缩放代码:

size.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
   @Override
   public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
      /** 最大进度为100 **/
      float scale = 1.0f;
      scale = scale + 0.01f * progress;

      /** mLayout是父布局 **/
      mLayout.setScaleX(scale);
      mLayout.setScaleY(scale);
      mLayout.invalidate();
  }

  @Override
  public void onStartTrackingTouch(SeekBar seekBar) {
  }

  @Override
  public void onStopTrackingTouch(SeekBar seekBar) {
  }
});
解决方案
原有层级: Window Service > Parent Layout > Views
修复后层级: Window Service > Parent Layout > Parent Layout 2 > Views

添加到Window Service前的父布局不能无上级嵌套布局,否则仅图形会缩放,触摸区域不会同步调整。


内容的提问来源于stack exchange,提问作者user11988193

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 08:15:06