Startseite › Foren › Deutsches LiveCode-Forum › Navigation Bar
Schlagwörter: Navigation Bar Widget
- Dieses Thema hat 9 Antworten und 4 Teilnehmer, und wurde zuletzt aktualisiert vor 4 Jahren, 3 Monaten von Anonym.
-
AutorBeiträge
-
-
April 20, 2017 um 23:39 Uhr #701
Hallo zusammen,
ich habe vor einer Woche mit dem Buch angefangen und mache nebenbei mein erstes eigenes Projekt. Nun hänge ich an dieser Navigation Bar.
Ich würde gerne einfach damit in die verschieden Cards navigieren und nicht mit einem Button.
Jedoch komme ich nich weiter 🙁
Wie kann ich denn das richtig einbinden, so dass man verschiedene ItemName benutzten kann.Bei den Livecode Lessons steht
on hiliteChanged
go to card the hilitedItemName of me
end hiliteChangedDas geht bei einem Item aber nicht bei mehreren.
Ich weiß das ist vielleicht etwas früh am Anfang, aber mich wurmt, dass ich es nicht hinbekomm 🙂
Liebe Grüße Daniel
-
April 21, 2017 um 09:50 Uhr #703
Ich habe es:
on hiliteChanged
put the hilitedItemName of me into tItemClicked
switch tItemClicked
case „contacts“
if contacts is „contacts“ then
go to card „contacts“
end if
break
case „favorites“
if contacts is „favorites“ then
go to card „favorites“
break
case „trash“
if contacts is „trash“ then
go to card „trash“
break
end switch
end hiliteChangedLeider wird das so nirgends bei LiveCode beschrieben. Durch Zufall entdeckt 🙂
-
April 21, 2017 um 09:55 Uhr #704
Hallo Daniel,
es geht schon alles so wie Du es versuchen willst. Der Code, den Du zitiert hast, geht davon aus, dass die Cards, auf die Du wechseln möchtest, exakt den gleichen Namen haben wie die „Navigation Names“, die Du in Deinem „Navigation Bar Widget“ eingetragen hast. Dann wird es auch funktionieren.
Wenn diese Navigation auf allen Karten an derselben Stelle liegen soll und gleich sein soll, dann ist es übrigens am besten, wenn Du die Navigation auf der ersten Card erstellst und dann in eine Group umwandelst. Dieser Group kannst Du im Property Inspector das Attribut „Behave as Background“ mitgeben, und sobald Du weitere Cards erstellst, ist diese Group dort auch vorhanden, sodass Du das Navigation Widget nur einmal anlegen musst und es später gültig für alle Seiten auch noch verändern kannst.
Viel Erfolg!
Hauke
-
April 21, 2017 um 09:57 Uhr #705
Jetzt haben sich unsere Beiträge überschnitten. Deine neue Lösung funktioniert zwar natürlich auch, ist aber weit umständlicher und macht eigentlich exakt dasselbe, denn Du brauchst im Grunde keine switch-case Unterscheidung, wenn die Cards sowieso dieselben Namen haben, die bereits in der Variable stehen. … Aber egal… viele Wege führen zum Ziel…
Viel Erfolg!
Hauke
-
April 21, 2017 um 10:42 Uhr #706
Hi Daniel,
hier stimmt Einiges nicht:
on hiliteChanged put the hilitedItemName of me into tItemClicked switch tItemClicked case "contacts" if contacts is "contacts" then go to card "contacts" end if break case "favorites" if contacts is "favorites" then go to card "favorites" break case "trash" if contacts is "trash" then go to card "trash" break end switch end hiliteChanged
1. Es fehlt END IF bei den letzten beiden CASEs.
Ich hatte den Code in Livecode in ein Skript kopiert und wie man sieht, es wird nicht korrekt eingerückt. Einmal TAB drücken im Handler, dann formatiert LC den Handler korrekt und man hat auch eine optische Kontrolle, ob alles korrekt ist.
2. Die IF THEN Abfrage ist hier doppelt gemoppelt, SWITCH…CASE reicht völlig aus
3. die Variable -> contacts ist nirgendwo definiert bzw. nicht mit einem Wert gefüllt, daher hat sie als Inhalt den STRING „contacts“ und nur der erste CASE funktioniert, wenn auch mehr durch Zufall. 😉Gruß
Klaus
-
April 21, 2017 um 11:12 Uhr #707
Super danke für die Antworten.
Aber irgendwie geht das nicht. Ich habe die Cards wie im „Navigation Bar Widget“ unter „Navigation Names“eingetragen.
Dann den Codeon hiliteChanged
go to card „card1“
go to card „card2“
go to card „card3“
end hiliteChangeddas endet immer auf der 3. Card
Wie bekomm ich das hin dass auch beim klick auf das zweite Icon die card2 erscheint?!.
Sorry für die dämlichen Fragen
@Klaus stimmt 🙁 so funktioniert es auch nicht -
April 21, 2017 um 11:38 Uhr #711
Hi Daniel,
Dein Skript sagt Livecode nur:
Wenn jemand auf den „Navigation Bar“ klickt, dann gehe zur Karte „Card1, dann zur Karte „Card2“ und dann zur Karte „Card3“, darum siehst Du immer nur die Karte „Card3“Dieses Skript, wie Du oben schon einmal erwähntest, ist das richtige:
on hiliteChanged go cd the hilitedItemName of me end hiliteChanged
Dafür müssen die Karten auch „Card1“ etc. heissen und die „itemnames“ genau so!
Ich denke, das war bei Dir vorher nicht der Fall, weshalb dieses Skript nicht funktioniert hat.Ist ja auch logisch, denn im Skript steht:
Gehe zu der Karte, die so heisst wie das angeklickte „hilitedItemName“ von mir 🙂Das Gute daran ist ja, daß dem User durchaus ein anderer Name angezeigt werden kann, ebenso wie bei Buttons, deren NAME und LABEL nicht inbedingt identisch sein müssen.
Ideal bei mehrsprachigen Anwendungen!Gruß
Klaus
-
April 21, 2017 um 11:50 Uhr #712
Achsoooo 🙂 das ist ja einfach und funktioniert tadellos
Oh man und ich dachte ich muss für das „hilitedItemName“ den Namen einsetzten und habe immer Fehler bekommen, da etwas fehlt.
Vielen leiben Dank an euch!
-
April 21, 2017 um 12:25 Uhr #713
Bei Livecode ist es immer einfacher, als man denkt! 😉
-
September 20, 2020 um 12:00 Uhr #22989Anonym
und was kann man machen wenn der hilited icon einfach auf ein anderes icon springt obwohl der cardwechsel problemlos erfolgt?
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.