Einstellung der android-button unsichtbar aber immer noch einen onClick-Listener angehängt
So, ich bin putting ein Osterei in meine app und ich will die Button
unsichtbar zu sein, aber wenn darauf geklickt wird(Rick roll). So weit ich kann, damit es funktioniert, wenn ich sage:
Button.setVisibility(view.VISIBLE);
Button.setBackgroundColor(Color.TRANSPARENT);
dann meine onClickListener
. Das einzige problem mit diesem ist, dass ich den text auf der Button
für ihn angeklickt werden. Wenn ich den text aus und machen es komplett unsichtbar wird dann die onClickListener
wird niemals aufgerufen, aus irgendeinem Grund?
Hier ist mein OnClickListener
wonderWhatThisDoes.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v) {
mMediaPlayer = MediaPlayer.create(About.this, R.raw.surprise);
mMediaPlayer.start();
Context context = getApplicationContext();
CharSequence text = "Congrats on finding our easter egg! Enjoy... :]";
Toast toast = Toast.makeText(context, text, Toast.LENGTH_LONG);
toast.show();
}
});
- Poste den code wie setzen Sie die
OnClickListener()
? - onClickListener-Implementierung spielt keine Rolle, wenn Sie nie aufgerufen wird.
- Wenn die Breite und Höhe der Schaltfläche festgelegt ist wrap_content, dann vielleicht der Knopf ist immer zu klein, zu berühren, wenn es keine Inhalte. Mit dem text wird es größer machen, wie die Breite und Höhe wachsen.
- Ich Stimme mit @Steve Prentice Antwort. Da hast du -->" "<-- in diesem großen text auf der Schaltfläche, und verwenden Sie wrap_content, der Nutzer wird keine Inhalte haben, wo Sie klicken
- Schön! tolle Antworten Jungs. Das war es definitiv. wrap_content war, dass er zu klein für mich, um zu klicken. viele Menschen erhalten nun rick roll würde Dank dir 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Ihr layout, Ihre Taster haben eine bestimmte Breite, wie
android:layout_width="40dp"
.Wenn Ihre Breite festgelegt ist
wrap_content
mit transparentem hintergrund und ohne text, Android-Messen werden diese Ansicht als eine Breite von 0dp. Sie werden nie in der Lage sein, um klicken Sie auf, dass.layout_align*
Funktionen in Verbindung.versuchen, indem Sie den text in der Schaltfläche " "...
Können Sie erstellen, jeden Blick, wie LinearLayout, als anklickbar. Machen Sie ein LinearLayout mit den gleichen Abmessungen wie die Schaltfläche und legen Sie die onClick-listener zu, was auch immer das Ereignis behandelt. Da es von Natur aus nicht sichtbar ist, sollte es die gleiche Wirkung.
Einfache Antwort ist, legen Sie alpha auf 0, wie dies.
Wird es unsichtbar, und onclick funktioniert.
Stellen Sie sicher, dass Ihre Schaltfläche ist die Breite und Höhe nicht festgelegt
wrap_content
weil Sie dazu führen würde, dass der Knopf extrem klein, wenn der text " ". Wenn das nicht funktioniert, könnten Sie auch versuchen, anstelle onClick() mit onTouch():Nicht, verwenden Sie eine Schaltfläche und setzen Ihre Tätigkeit dispatchTouchEvent und behandeln es auch so.
Können Sie eine
OnClickListener
zu jedemView
, so versuchen Sie, erstellen einImageView
mit einem transparenten Bild und fügen Sie Ihre Zuhörer, dass.zu diesem code-Schaltfläche ist nicht sichtbar, aber es funktioniert ;))
Können Sie auch deaktivieren Sie die-Taste (Es wird nicht anklickbar).
In java-code:
In .xml-layout:
Diese funktioniert für mich:
btn.setClickable(false)
aufGONE
Sichtbarkeit.btn.setClickable(true)
aufVISIBLE
Sichtbarkeit.