Menü nach Klick auf Item offen lassen

  • Antworten:10
Gelöschter Account
  • Forum-Beiträge: 3

07.04.2010, 08:24:42 via Website

Hallo zusammen,

Seit ein paar Tagen sitze ich an einer App, die nun quasi fertig ist. Nur eine Sache stört mich noch.

Ich erstelle in meiner App ein Menü:
1public boolean onCreateOptionsMenu(Menu menu) {
2 MenuInflater inflater = getMenuInflater();
3 inflater.inflate(R.layout.menu, menu);
4 return true;
5 }

Meine Frage ist nun, wie ich es erreiche, dass das Menü nach einem Klick auf ein beliebiges Menü-Item
1public boolean onOptionsItemSelected(MenuItem item) { ...
dazu bringe offen zu bleiben. Standardmäßig minimiert es sich ja.

Hat dazu jemand ne Idee? Ist es überhaupt möglich?

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

07.04.2010, 08:55:37 via Website

glaube eher nicht, dass das möglich ist. außer eben das menü wieder manuell aufzumachen.

swordiApps Blog - Website

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

07.04.2010, 22:32:58 via Website

Hat dazu jemand ne Idee? Ist es überhaupt möglich?

Wenn du eine Funktionsleiste willst, warum versuchst du es dann über den Umweg eines Menüs, statt den direkten Weg zu gehen?

Antworten
Gelöschter Account
  • Forum-Beiträge: 3

08.04.2010, 08:32:58 via Website

and dev
Hat dazu jemand ne Idee? Ist es überhaupt möglich?

Wenn du eine Funktionsleiste willst, warum versuchst du es dann über den Umweg eines Menüs, statt den direkten Weg zu gehen?

Ehrlich gesagt hatte ich anfangs nicht geplant die Leiste länger geöffnet zu lassen. Beim Testen hab ich aber gemerkt dass es manchmal nicht verkehrt wäre.
Außerdem sieht die standard Options-Leiste ja recht schön aus, so semi-transparent mit der schönen Überblendung beim Ein-/Ausfahren.
Fürs Programm ist es des weiteren besser wenn die Leiste versenkbar ist. Da ich Bilder anzeige benötige ich möglichst viel vom Bildschirm.

Daher fiel die Wahl aufs "onCreateOptionsMenu".

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

08.04.2010, 10:30:24 via Website

Wenn du eine Funktionsleiste willst, warum versuchst du es dann über den Umweg eines Menüs, statt den direkten Weg zu gehen?


Darf Ich kurz dazwischen Fragen wie das gemeint wäre ?

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

08.04.2010, 10:37:32 via Website

ich glaube er meint, dass er eine leiste direkt in die app einbauen soll, die immer angezeigt wird

swordiApps Blog - Website

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

08.04.2010, 10:56:09 via Website

ich glaube er meint, dass er eine leiste direkt in die app einbauen soll, die immer angezeigt wird

...oder sich bei Klick auf die Menütaste ein/ausblendet, aber nicht bei Klick auf eine der angebotenen Funktionen.

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

08.04.2010, 10:59:35 via Website

ja

vor allem ist das gegen die user, weil die es gewohnt sind, dass die menüleiste sich schließt.

swordiApps Blog - Website

Antworten
Gelöschter Account
  • Forum-Beiträge: 3

08.04.2010, 11:46:13 via Website

and dev
ich glaube er meint, dass er eine leiste direkt in die app einbauen soll, die immer angezeigt wird

...oder sich bei Klick auf die Menütaste ein/ausblendet, aber nicht bei Klick auf eine der angebotenen Funktionen.

Wie sähe das dann grob aus?

Ich nehme an die Menü-Taste wird mit onKeyDown abgefangen.
Aber wie würde man dann ein überlappendes Menü-Panel implementieren? Man bräuchte ja quasi ein zweites Layout.

— geändert am 08.04.2010, 11:46:30

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

08.04.2010, 12:01:43 via Website

naja

du könntest eventuell den klick der menütaste abfangen und dort dann ein layout von dir einblenden.

mit diesem kannst du dann machen was du möchtest. und beim zweiten klick auf die menütaste wird das wieder ausgeblendet

swordiApps Blog - Website

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

08.04.2010, 19:29:57 via Website

Aber wie würde man dann ein überlappendes Menü-Panel implementieren? Man bräuchte ja quasi ein zweites Layout.

Hab ich jetzt noch nicht probiert, aber mein erster Versuch wäre ein RelativeLayout als Basis und ein LinearLayout für die Leiste mit alignParentBottom;
bei Klick auf MENU verwendest du setVisibility() um die Leiste zu zeigen bzw. zu verstecken.

Antworten