Android: warum setVisibility (View.GONE); oder setVisibility (View.INVISIBLE); arbeite nicht
Möchte ich meine DatePicker
und die Schaltfläche unsichtbar zu sein, in der Anfang. Und wenn ich drücken Sie meine magischen Knopf möchte ich setVisibility(View.Sichtbar);
Das problem hier ist, wenn ich setVisibility(View.GONE)
oder setVisibility(View.INVISIBLE)
nichts ändert und die Komponente ist immer noch sichtbar.
final DatePicker dp2 = (DatePicker) findViewById(R.id.datePick2);
final Button btn2 = (Button) findViewById(R.id.btnDate2);
dp2.setVisibility(View.GONE);
dp2.setVisibility(View.INVISIBLE);
btn2.setVisibility(View.GONE);
btn2.setVisibility(View.INVISIBLE);
btn2.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
TextView txt2 = (TextView) findViewById(R.id.txt2);
txt2.setText("You selected " + dp2.getDayOfMonth()
+ "/" + (dp2.getMonth() + 1) + "/" + dp2.getYear());
}
});
InformationsquelleAutor der Frage nayden | 2011-09-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich sehe durchaus ein paar Dinge falsch. Für den Anfang, Sie nicht über Ihre Magische Taste definiert, und es ist kein Ereignis-handler.
Außerdem sollten Sie nicht verwenden:
Verwenden Sie nur einen der beiden. Von Android-Dokumentation:
In Ihrem Beispiel, Sie werden das überschreiben der
View.GONE
Zuordnung mitView.INVISIBLE
.Versuchen zu ersetzen:
mit:
Ebenso für andere widgets:
InformationsquelleAutor der Antwort con_9
Können Sie denken, es als eine CSS style visibility und display.
InformationsquelleAutor der Antwort az3
Ersten sehen Ihren code:
Hier stellen Sie sowohl die Sichtbarkeit zu gleichen Feld, so ist das das problem.
Ich gebe ein Beispiel für das Probe-demo
InformationsquelleAutor der Antwort Parag Chauhan
Anzeigen.GEGANGEN, Dieser Ansicht ist unsichtbar, und es nimmt keinen Raum für layout-Zwecke.
Anzeigen.UNSICHTBAR Diese Ansicht ist unsichtbar, aber es dauert noch bis Speicherplatz für layout-Zwecke.
InformationsquelleAutor der Antwort Pankaj Talaviya
Heute hatte ich ein Szenario, wo ich war Durchführung von folgenden Maßnahmen:
Rechts auf dem nächsten Bild war ich durchführen einer
if
überprüfen Sie woanders für die Sichtbarkeit Status anzeigen. Und erraten, was? Die folgende Bedingung übergeben:Platzierung von breakpoints, die Sie sehen, die Sichtbarkeit der änderungen
GONE
, aber gleich auf die nächste Rahmen wird es magisch wirdVISIBLE
. Ich versuche zu verstehen, wie zur Hölle das passieren konnte.Stellt sich heraus, es war eine animation angewendet, um diese anzeigen, die intern verursacht der Ansicht ändern Sie die Sichtbarkeit, um
VISIBLE
bis zum Abschluss der animation:Wenn Sie Debuggen, werden Sie sehen, dass
myViewGroup
tatsächlich ändert seine Sichtbarkeit zuGONE
, aber direkt auf das nächste Bild würde es wieder sichtbar werden, um die animation zu laufen.So, wenn Sie stoßen mit einer solchen situation, stellen Sie sicher, dass Sie nicht die Durchführung einer
if
check-in mitten in der Animation die Sicht.Können Sie entfernen Sie alle Animationen auf den Blick über Blick.clearAnimation().
InformationsquelleAutor der Antwort azizbekian
Anzeigen.WEG lässt den Blick unsichtbar, ohne den Blick nehmen Platz im layout.
Blick.UNSICHTBAR lässt den Blick eben nicht sichtbar noch Platz wegnimmt.
Sind, werden Sie zuerst mit GEGANGEN und dann UNSICHTBAR auf dem gleichen Ansicht.Da wird der code sequentiell abgearbeitet, zuerst wird die Ansicht GEGANGEN, dann ist es nicht durch die UNSICHTBARE Typ noch Platz wegnimmt.
Sollten Sie hinzufügen button-listener auf die Schaltfläche und im onClick () - Methode stellen die Ansichten sichtbar. Dies sollte der Logik nach mir in Ihrer onCreate () - Methode.
Ich denke, dass dies problemlos funktionieren sollte. Hoffe, das hilft.
InformationsquelleAutor der Antwort Trishant Sharma
Weil Sie die Sichtbarkeit festlegen, die entweder true oder false.
versuchen Sie, die
setVisible(0)
sichtbar wahr .and setVisible(4)
zu visible false.InformationsquelleAutor der Antwort ali