Ich habe ein Image und ein Textview in einem Linearlayout wie folgt gewickelt:Capturing Linearlayout onClick Ereignisse mit Image Inneren
<LinearLayout android:orientation="vertical"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_weight="20" android:gravity="center"
android:clickable="true" android:id="@+id/action_showhide">
<ImageButton android:id="@+id/test"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:src="@drawable/ic_toggle_hide_states" android:background="@null"></ImageButton>
<TextView android:id="@+id/TextView01" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/txtHide"
android:textColor="@drawable/orange" android:textStyle="bold"></TextView>
</LinearLayout>
Die Image durch eine benutzerdefinierte ziehbar für normale gesichert wird, fokussiert und gedrückt Staaten. Ich möchte dem Benutzer erlauben, irgendwo in das LinearLayout zu klicken, um ein OnClick-Ereignis auszulösen. Der folgende Code zeigt die für die OnClickListener ein:
final LinearLayout actionHide = (LinearLayout) findViewById(R.id.action_showhide);
actionHide.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d(AppAdvocate.TAG, "Event caught");
}
});
Der Code funktioniert, wenn der Benutzer überall auf dem Textview klickt aber, wenn der Benutzer auf dem Image klickt wird das Ereignis Blase nicht bis zum Linearlayout. Ich definiere keinen onClickListener für die Schaltfläche. Ich möchte, dass sich das Zeichen für meinen ImageButton ändert, damit ich es nicht auf clickable = false setzen kann. Gibt es eine Möglichkeit, die Veranstaltung zu verblüffen?
Danke Mayra, das funktioniert. Wie sollte ich das LinearLayout onClick-Ereignis auf das ImageButton herunterskalieren, so dass seine zeichnbaren Änderungen beim Drücken von LinearLayout angezeigt werden? – Richard
Ich bin mir nicht sicher, auf welchen Zustand Sie sich beziehen. Funktioniert die Bildschaltfläche wie eine Umschalttaste und zeigt einen angeklickten Status an? Sie sollten in der Lage sein, einfach setChecked (checkedState) auf Ihrer Umschaltfläche aufzurufen. –