我有一个问题。
我们有布局自定义框架布局,具有缩放和翻译功能
public class MyFrameLayout extends FrameLayout {
...
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
getChildAt(0).setTranslationX(vTranslate.x);
getChildAt(0).setTranslationY(vTranslate.y);
getChildAt(0).setScaleX(mScale.scaleFactor);
getChildAt(0).setScaleY(mScale.scaleFactor);
}
该班级会侦听触摸手势和翻译/缩放其子级。 我将它用作带有内容的ViewGroup的父视图组。
<MyFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray"
android:clipChildren="false">
<android.support.constraint.ConstraintLayout
android:id="@+id/calc_constraint_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clipChildren="false"/>
约束布局的内容添加了programmaticaly,它比屏幕或父组更大。因此我们设置了clipChildren = false。 但是,在转换之前超出范围的孩子们对onClick事件没有反应。
一些图片:
6%节点无法回答点击次数。 求你帮帮我。
答案 0 :(得分:0)
好。我找不到制作约束布局(白色)以使内容适合wrap_content值的方法。我的解决方法是动态地增加约束布局的宽度和高度,相应地增加节点树的宽度和高度。
当您添加其他节点时 - 布局度量会增长,您会看到它如何调整abit。然后修复它我必须覆盖父布局中的onLayout()方法(屏幕截图上的绿色,但它是自定义的ZoomableLayout)。
现在一切正常。但是我不确定这个实现是否丑陋。