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
相关产品推荐
相关产品推荐

