Sie könnten einfach eine TableView
mit nur einem TableRow
(oder so viele, wie Sie benötigen) definieren und ein onClickListener
für jede dieser View
s innerhalb der TableRow
, die das auf jedem Klick machen würde, würde die ausgewählten View
selbst erweitern .
Ich weiß nicht, ob Sie eine statische Anzahl von View
s in dieser Zeile haben oder Sie werden sie dynamisch erstellen, aber dies sollte für alle von ihnen funktionieren, die echte "Arbeit" hier über die Zeile zu füllen .
Sobald Sie Ihre Reihe von View
s haben, erklären Sie einfach eine onClickListener()
auf jedem von ihnen. Zum Beispiel sollte das genug sein:
OnClickListener myListener = new OnClickListener() {
@Override
public void onClick(final View v) {
v.setVisibility(View.VISIBLE);
}
};
Und als onClick
Ereignis für alle Ihre Artikel innerhalb der TableRow
:
für (Blick v: myTableRowViews) v.setOnClickListener (myListener);
Dies hat einen Nachteil: Sie können wissen, welche View
wurde für die Auswahl angeklickt, aber nativ können Sie nicht wissen, welche deaktiviert wurde, so dass Sie die letzte ausgewählte Registerkarte eine klassenweite Variable und Setzt sie jedes Mal onClick()
gebrannt, so dass Ihre Zuhörer etwas wie dies zu machen:
// In your class declare a variable like this
View lastSelected = null;
OnClickListener myListener = new OnClickListener() {
@Override
public void onClick(final View v) {
if (lastSelected != null)
lastSelected.setVisibility(View.GONE);
v.setVisibility(View.VISIBLE);
lastSelected = v;
}
};
Zusätzlich Sie eine Animation auf die Wirkung einstellen können, um es attraktiver zu machen, aber in erster Linie ist dies die Idee.
Eine letzte Sache: Um es auf diese Weise funktioniert Sie werden die layout_height
sowohl Ihre TableRow
und die View
Elemente im Inneren setzen müssen, so kann es später erweitern, wenn Sie den zusätzlichen Teil als sichtbar eingestellt. Damit es gut aussieht, müssen alle Ihre View
s die gleiche Höhe haben (sowohl im reduzierten als auch im erweiterten Zustand).
Sie sollten nicht Galerie könnte auch verwenden, wenn Sie in der Lage sind, die gewünschte Ausgabe von ihm zu bekommen. Es ist seit API-Stufe 16 veraltet, daher verlieren Sie etwa 65% der Benutzer (ab diesem Tag) von Anfang an. – Shakti
können Sie bitte Ihre Frage ausarbeiten ... –
@Shakti, während ich zustimmen, dass OP Galerie nicht verwenden sollte, bedeutet deprecated nicht unbedingt OP wird jeden Benutzer verlieren. AFAIK, Galerie existiert noch bis KitKat, aber seine Verwendung wird abgeraten. – ugo