Перейти к содержанию
Fire Monkey от А до Я
  • 0

PopupMenu в TListView на мобильных системах?


ENERGY

Вопрос

Подскажите как сделать PopupMenu в TListView на мобильных системах? 

PopupMenu там не работает, он для Windows и OSX. Нужно при долгом нажатии в TListView показывать меню.

Может в Delphi это можно сделать проще, чем создавать TListBox и просчитывать координаты? А если по другому никак, можно пример как это сделать?

Спасибо.

upd: 

Я просто думал возможно есть готовое решение, где можно просто указать в Design Time PopupMenu в TListView (как это делается в VCL) и оно будет показываться при длинном нажатии (т.е. не высчитывать самому координаты, центрируя его на экране и писать какой то код ). 

Изменено пользователем ENRGY
Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Спасибо за ответ.

Но причем тут TMultiView к TListView? Что то не пойму. 

У ListView есть свое событие OnGuesture, где можно перехватить длинное нажатие.  Вопрос не в этом, а в том, из какого компонента состряпать PopupMenu в моб. ОС? Что обычно используют для этих целей, чтобы отобразить меню в ListView?

Я просто думал возможно есть готовое решение, где можно просто указать  в Design Time PopupMenu в TListView (как это делается в VCL) и оно будет показываться при длинном нажатии (т.е. не высчитывать самому координаты, центрируя его на экране и писать какой то код ). 

 

Изменено пользователем ENRGY
Ссылка на комментарий
  • 1
  • Модераторы

Для мобильных есть (не)визуальные нативные компоненты

Ссылка на комментарий
  • 0

Спасибо Равиль!

По факту используется ListBox. В случае  TCustomPopover и  TCustomListPicker  все равно придется (проще всего) его использовать.

Самый простой варинат, как уже написал Равиль, TMultiView с режимом Popover. 

Как это сделать вручную без TMultiView пошагово:

 https://community.embarcadero.com/blogs/entry/creating-an-overflow-menu-on-android-463 

На случай если статья пропадет:

 

Спойлер

 

Creating an Overflow Menu on Android

 
POSTED BY SARINA D ON THURSDAY, 17 OCTOBER 2013 IN BLOGS

During my CodeRage 8 session I talked about creating an Action Bar with an Overflow menu, so I wanted to provide some step-by-step instructions.

On Android, an Action Bar is a top (or top and bottom aligned) toolbar that is segmented into 4 key functional areas. One of those functional areas is an Overflow menu.

The ‘Overflow’ popup menu is commonly used for additional menu items on Android and accessed via the Action Bar. An Overflow menu is designed to give the application user quick access to additional/less often used features that are otherwise not accessible via more prominent menu items.

In FireMonkey, you can easily implement an Overflow menu through the use of TListBox.



In my example, I am using the following 4 components:

  •  
  • TToolbar 
    •  
    • Alignment: alTop

       
  • TSpeedButton 
    •  
    • Alignment: alRight
    • StyleLookUp: detailstoolbutton
    • Margin, Right: 5 (this is set in case you want to carry this UI over to iOS as well, to account for both bordered (iOS6) and non-bordered (iOS7) button sizes

       
  • TListBox with several items
    •  
    • Each of the four listboxitems has a bitmap and text defined via the ItemData property
    • Visibility has been set to False
    • Height has been set to 176px (to show the listbox border right below the last listbox item)
    • Anchors: akTop, akRight

       
  • TShadowEffect 
    •  
    • Parented to TListBox 



     
  • ListBox Item Properties:

    TSpeedButton properties:

    I used a larger (80x80px) icon for each listbox item bitmap so that the icons look nice on both lower resolution and high resolution displays.

    I also created the following on-click Event for my OverflowButton:
    procedure TForm10.OverflowButtonClick(Sender: TObject);
    begin
      OverflowMenu.Visible := not OverflowMenu.Visible;
      if OverflowMenu.Visible then
      begin
        OverflowMenu.ApplyStyleLookup;
        OverflowMenu.RealignContent;
    end;
    end;

      

    Below is a quick recording of the Overflow menu in action.

     

overflow2_9814[1].PNG

 

 

Также этот же вариант описан в бесплатной книге в главе  Create an Overflow Menu

 

Изменено пользователем ENRGY
Ссылка на комментарий
  • 0
  • Модераторы
20 часов назад, ENRGY сказал:

Как это сделать вручную без TMultiView пошагово:

 https://community.embarcadero.com/blogs/entry/creating-an-overflow-menu-on-android-463 

На случай если статья пропадет:

В далёком 2013 переводил эту заметку, читать тут: Создание выпадающего меню в приложении на Android

Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...