2013-03-06 12 views
5

Aby zgrupować ikonę i tekst, zgrupowałem je w liniowym layoucie i zaimplementowałem detektor dla układu liniowego.Problem z onclicklistener do 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> 

I wprowadziły słuchacza, w następujący sposób: -

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

Problem mam jest to, że w obliczu którego klikam na ikonę, słuchacz zdaje się nie reagować. Słuchacz pracował, gdy klikam spację pomiędzy widokiem tekstowym a ikoną. Chciałbym, aby cała część była klikalna, a nie w konkretnym punkcie.

Odpowiedz

6

Myślę, że jest klikalnym widokiem i przechwytuje kliknięcie, uniemożliwiając LinearLayout otrzymanie zdarzenia kliknięcia. Spróbuj dodać android:clickable="false" do XML definiującego ImageButton.

Jednak lepszą odpowiedzią jest użycie złożonego ciągnienia. Zobacz How do I use a compound drawable instead of a LinearLayout that contains an ImageView and a TextView. Zasadniczo można dodać android:drawableTop="@drawable/start" do kodu XML definiującego TextView i całkowicie wyeliminować LinearLayout i ImageButton. Następnie wystarczy kliknąć na kliknięcie na TextView.

+1

android: klikalny nie wydaje się pomagać, ale ciągnięcie złożone działa dobrze. – daemon54

Powiązane problemy