2013-03-06 12 views
5

Um ein Symbol und einen Text zu gruppieren, habe ich sie in einem linearen Layout gruppiert und einen Listener für das lineare Layout implementiert.Problem mit onclicklistener zu LinearLayout

<LinearLayout 
     android:id="@+id/ll0" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="fill_horizontal" 
     android:orientation="vertical" > 
     <ImageButton 
      android:id="@+id/imageButton0" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@null" 
      android:src="@drawable/start" /> 
     <TextView 
      android:id="@+id/textView0" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Start" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 
    </LinearLayout> 

Ich habe den Hörer, die folgende Art und Weise implementiert: -

l0 = (LinearLayout)findViewById(R.id.ll0); 
l0.setOnClickListener(new View.OnClickListener() 
    { 
     public void onClick(View v) 
     { 
      //Some Code 
     } 
    }); 

Die Frage, die ich gegenüber habe, ist das, was ich auf das Symbol klicken, wird der Zuhörer nicht zu reagieren scheint. Der Hörer hat funktioniert, als ich auf den Raum zwischen der Textansicht und dem Symbol geklickt habe. Ich möchte, dass das ganze Teil anklickbar ist, nicht an einem bestimmten Punkt.

Antwort

6

Ich denke, die ImageButton ist eine anklickbare Ansicht und erfasst den Klick, wodurch verhindert wird, dass das LinearLayout das Klickereignis empfängt. Versuchen Sie, android:clickable="false" zu dem XML hinzuzufügen, das die ImageButton definiert.

Eine bessere Antwort ist jedoch eine zusammensetzbare Verbindung zu verwenden. Siehe How do I use a compound drawable instead of a LinearLayout that contains an ImageView and a TextView. Grundsätzlich können Sie android:drawableTop="@drawable/start" zu dem XML hinzufügen, das die TextView definiert und die LinearLayout und ImageButton insgesamt beseitigen. Dann behandeln Sie einfach den Klick auf die TextView.

+1

android: anklickbar scheint nicht zu helfen, aber die zusammengesetzte Drawable funktioniert gut. – daemon54

Verwandte Themen