Android: onClick sur LinearLayout avec TextView et Bouton
J'ai un Fragment qui utilise le XML suivant la mise en page:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/card"
android:clickable="true"
android:onClick="editActions"
android:orientation="vertical" >
<TextView
android:id="@+id/title"
style="@style/CardTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:duplicateParentState="true"
android:text="@string/title_workstation" />
<Button
android:id="@+id/factory_button_edit"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:duplicateParentState="true"
android:text="@string/label_edit" />
</LinearLayout>
Comme vous pouvez le voir, j'ai un onClick paramètre est défini sur LinearLayout
. Maintenant sur le TextView
celui-ci est déclenché correctement, et sur tous les vides de la zone. Juste sur le Button
il n'a pas d'invoquer la méthode onClick que j'ai mis.
Est-ce normal? Que dois-je faire pour que le onClick méthode est invoquée partout sur le LinearLayout
?
essayez de supprimer cette liste de propriétés android:cliquable="true" de LinearLayout.
Ne pas changer quoi que ce soit. Tout ce que j'avais à faire était de mettre en
Ne pas changer quoi que ce soit. Tout ce que j'avais à faire était de mettre en
android:clickable="false"
sur le bouton, ou comme dans la solution android:onClick="editActions"
.
OriginalL'auteur Terry | 2013-10-30
Vous devez vous connecter pour publier un commentaire.
ajouter onClick de l'Action de votre bouton dirrectly dans le code
comme ceci:
ou xml ajouter
à votre bouton
android:clickable="false"
de mon bouton. Mais votre solution a le même résultat, donc je l'accepte que le droit de réponse.votre réponse est mieux, car le bouton "vole" l'événement d'il est le père de mise en page, il est donc plus approprié pour définir son cliquable attr à false.
OriginalL'auteur EugenUngurean
C'est ce que vous avez besoin dans votre LinearLayout :
et aussi dans votre classe qui appel xml un peu de méthode:
OriginalL'auteur AndroidF
Je pense que vous devriez utiliser un TouchDelegate:
OriginalL'auteur Jeffrey Klardie
essayer de faire
et sur votre Activité ou votre fragement
J'ai édité ma réponse
Ce qui se passe est que clickMe est appelée sur le bouton, et editActions partout ailleurs. Mais je veux le LinearLayout méthode onClick (editActions) substituant le comportement de l'enfant. Est-il un moyen de le faire?
vous souhaitez remplacer le comportement de l'enfant, comme quoi?? cliquez sur le bouton ??
Je veux que le parent LinearLayout est cliquable, et les appels editActions onclick, n'importe où vous le touchez. Si le bouton est touché, la même chose doit se produire, mais le bouton n'a pas besoin d'être activé (look "cliqué").
OriginalL'auteur AITAALI_ABDERRAHMANE
Bien, si ce un bar avec des enfants et vous voulez avoir seulement ce bar cliquable avec aire de jeux pour enfants - essayez d'ajouter cette option pour chaque enfant dans le parent:
et bien sûr ajouter
setOnClickListener
pour la page principale, exemple sur mon blogExemple:
OriginalL'auteur deadfish
android:duplicateParentState="true"
ne m'aide pas.Pour faire votre mise en page cliquable avec ses enfants, vous devez ajouter cette option pour chaque enfant:
Puis cliquez sur la manipulation aller jusqu' à parent.
OriginalL'auteur Yurets
Je pense que vous devriez enlever ce paramètre pour votre Bouton:
OriginalL'auteur fasteque
OriginalL'auteur Tinashe Robert
ok c'est peut être la fin , mais ça aidera d'autres personnes, qui sont à la recherche pour
Remarque:
OriginalL'auteur Abhiode