Ich habe eine LienarLayout
mit einer Button
drin. Ich habe eine OnClickListener
auf der Button
und der LinearLayout
. Irgendwann möchte ich das Button
deaktivieren und das onClick
Ereignis dem Eltern LinearLayout
übergeben. Ich habe herausgefunden, dass Sie dies erreichen, indem Sie Button.setClickable(flase)
setzen. Was funktioniert und der LinearLayout
bekommt den Klick, aber die Klick - Animation Button
wird immer noch abgespielt. Noch schlimmer, wenn ich auf die LinearLayout
klicke, wo die Button
nicht gezeichnet wird, spielt die Schaltfläche Click Animation noch!Deaktivieren Schaltfläche klicken Animation ohne SetEnable (false)
Wenn jemand weiß, wie ich erreichen kann, was ich will, würde ich es sehr schätzen.
S.S .: Der Grund, warum ich Button.setEnabled(false)
nicht verwenden möchte, ist, weil ich nicht möchte, dass die Schaltfläche deaktiviert aussieht. Ich möchte auch in der Lage sein, den klickbaren Zustand der Schaltfläche bei Bedarf zu aktivieren/deaktivieren. Also grundsätzlich möchte ich, dass der Button manchmal aktiv ist und dann andere Male für den Click zum LinearLayout durchläuft.
Der Code - xml:
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:attr/selectableItemBackground">
<Button
android:id="@+id/button"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="button"/>
</LinearLayout>
Der Code - java:
Button btn = (Button) view.findViewById(R.id.button);
btn.setClickable(false);
Vor Klick: Während Klick auf Linearlayout:
Sie können 'button.setOnClickListener (null)' verwenden, wenn Sie keinen Klick erreichen möchten und den Listener jederzeit in Übereinstimmung mit der Anforderung einstellen können. –
Ich kann einige Workaround-Optionen vorschlagen: 1) Touch-Listener anstelle von Klick verwenden. 2) Setzen Sie einen statischen Hintergrund auf die Schaltfläche (ohne die Zustände zu zeichnen), 3) platzieren Sie eine anklickbare Ansicht über die Schaltfläche, so dass alle Klicks erfasst werden. –