J'ai un problème.Android: clipChildren = false et onClickListner pour les enfants clippés
Nous avons mise en page mise en page de cadre personnalisé avec mise à l'échelle et la traduction de la fonctionnalité
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);
}
La classe à l'écoute des gestes tactiles et des traductions/échelle de son enfant. Je l'utilise en tant que viewgroup parent pour mon ViewGroup avec du contenu.
<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"/>
contenu pour la mise en page de contrainte ajoute programmaticaly et il est plus grand que l'écran ou d'un groupe parent. A cause de cela, nous avons défini clipChildren = false. Mais les enfants qui étaient hors limites avant la transition ne répondent pas aux événements onClick.
Quelques photos:
Le nœud 6% ne vient pas répondre aux clics. S'il vous plaît, aidez-moi.
alors quelle est la largeur de 'MyFrameLayout' et' ConstraintLayout'? – pskink
@pskink c'est match_parent. Si j'ai défini la largeur comme 2000dp pour la disposition de contrainte (une blanche) - le récipient sera plus grand et les clics fonctionneront. Dunno, pourquoi ni match_parent ni wrap_content ne fonctionnent pour la disposition de contraintes. Il a toujours les "tailles d'écran" – Kotsu
de sorte que vous pouvez voir les événements sont transmis aux vues enfants si la position de l'événement (x, y) est dans le parent - si elle est en dehors du parent, ils sont simplement ignorés - setTranslation * 'méthodes que vous pourriez essayer' scrollTo'/'scrollBy' - je ne sais pas comment cela fonctionnera avec' setScale * 'tu ... – pskink