2
我遇到問題。Android:clipChildren = false和onClickListner用於修剪兒童
我們有佈局定製框架佈局,縮放和平移功能
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%的節點只是不回答點擊。 請幫幫我。
那麼'MyFrameLayout'和'ConstraintLayout'的寬度是多少? – pskink
@pskink它是match_parent。如果我爲約束佈局設置寬度爲2000dp(白色) - 容器將變大並點擊工作。不知道,爲什麼match_parent和wrap_content都不適用於約束佈局。它仍然具有「屏幕大小」 – Kotsu
所以你可以看到事件傳遞給子視圖,如果event(x,y)位置在父級內部 - 如果它位於父級之外,則簡單地忽略它們 - 可能不是「 setTranslation *'方法你可以嘗試'scrollTo' /'scrollBy' - 我不知道它如何與'setScale *'一起工作... – pskink