J'ai cette mise en page:
holder.showHideBtn.setOnClickListener(view -> { if (invisible) { holder.layout.setVisibility(View.VISIBLE); invisible = false; holder.showHideBtn.setImageResource(R.drawable.ic_up_arrow); } else { holder.layout.setVisibility(View.GONE); invisible = true; holder.showHideBtn.setImageResource(R.drawable.down_arrow); } });
4 Réponses :
Essayez d'écrire onclick code> auditeur pour les deux,
framelayout code> et votre
imageview code>, car votre
imageview code> couvre maintenant votre
Framelayout Code> Et vous n'avez que cette petite zone qui n'est pas couverte par
imageview code>. Cela devrait aider. P>
J'ai ajouté la photo des résultats de mon travail, pouvez-vous vérifier?
Avez-vous essayé ma réponse? Aide-t-il?
Êtes-vous sûr que votre framelayout code> est à cet endroit exactement?
Oui sûr, je l'ai fait comme si cela devait être, mais je ne peux cliquer sur ImageView.
Pouvez-vous montrer votre code de onclick code> des deux
framelayout code> et
imageview code>
Laissez-nous Continuez cette discussion dans le chat .
Vous devez ajouter votre lismetteur de clic sur votre disposition de trame non sur imageview code>. Dans ce cas, votre
framelayout code> fonctionnera comme votre
imageview code>.
J'ai ajouté la photo des résultats de mon travail, pouvez-vous vérifier?
@Andrewgoroshko Si vous ajoutez un gestionnaire pour Framelayout, n'en ajoutez pas click Lister pour ImageView.
@Andrewgoroshko Supprimer le gestionnaire de clic pour ImageView, un seul sera suffisant
J'ai supprimé le gestionnaire de clic, mais je peux montrer des éléments cachés que lorsque je clique sur ImageView
@Andrewgoroshko n'était-ce pas ce que vous vouliez?. Je suis confus maintenant :)
Supprimer votre Votre image prendra le côté droit et avec Framelayout CODE> et définir
imageview code> comme ceci
code> L'icône sera placée sur le côté inférieur. p> p>
tout agit comme une image dans ma question :(
Êtes-vous sûr? Je viens de le tester et pour moi, ça marche. Assurez-vous de définir l'auditeur OnCliquez uniquement dans votre imageview code>.
J'ai réussi à résoudre mon problème via CONTRAINT_LAYOUT:
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="4dp" android:orientation="vertical" app:autoSizeMaxTextSize="20sp" app:autoSizeMinTextSize="8sp" app:autoSizeStepGranularity="1sp" app:autoSizeTextType="uniform"> <RelativeLayout android:id="@+id/relLay" android:layout_width="0dp" android:layout_height="wrap_content" android:background="#F2F2F2" app:layout_constraintHorizontal_weight="0.7" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toLeftOf="@+id/testClick" app:layout_constraintTop_toTopOf="parent"> <ImageView android:id="@+id/service_icon" android:layout_width="40dp" android:layout_height="40dp" android:layout_centerHorizontal="true" android:layout_marginTop="20dp" /> <TextView android:id="@+id/name_of_service" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/service_icon" android:layout_centerHorizontal="true" android:layout_marginTop="10dp" android:layout_marginBottom="10dp" android:fontFamily="@font/opensans_semibold" android:textAlignment="center" android:textColor="#4D4D4D" android:textSize="14sp" /> </RelativeLayout> <FrameLayout android:id="@+id/testClick" android:layout_width="wrap_content" android:layout_height="0dp" android:background="#F2F2F2" app:layout_constraintBottom_toBottomOf="@id/relLay" app:layout_constraintHorizontal_weight="0.3" app:layout_constraintLeft_toRightOf="@+id/relLay" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent"> <ImageView android:id="@+id/expand_btn" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" android:layout_marginEnd="10dp" android:layout_marginBottom="10dp" android:src="@drawable/down_arrow" /> </FrameLayout> <LinearLayout android:id="@+id/layout_descr" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="4dp" android:background="@drawable/test_back" android:visibility="gone" app:layout_constraintTop_toBottomOf="@id/relLay"> <TextView android:id="@+id/description" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="15dp" android:layout_marginTop="10dp" android:layout_marginEnd="10dp" android:layout_marginBottom="20dp" android:fontFamily="@font/opensans_semibold" android:textColor="#666666" /> </LinearLayout>
Essayez d'écrire
onclick code> auditeur pour les deux,
framelayout code> et votre
imageview code>.
Pouvez-vous expliquer plus de quoi essayez-vous exactement d'atteindre ici? Vous avez une vue d'ensemble d'une seule image à droite, puis la mise en page couvre toute la zone ce que vous êtes exactement signifié à droite? Peut-être partager une image de ce que vous essayez exactement d'atteindre?
@Umair, à l'heure actuelle, j'ai ceci - cliquez sur ImageView et la mise en page linéaire cachée devient visible. My ImageView est trop petit et certains des utilisateurs ne peuvent pas appuyer dessus à partir de la première fois. J'ai décidé de faire une petite partie de la principale mise en page linéaire cliquable, non seulement ImageView.
@Andrewgoroshko Vous devez utiliser votre Framelayout comme votre imagview. Ajouter Cliquez sur Soutailer à votre Framelayout pas à l'image d'image.