Erscheinungsbild
SegmentedButton
Eine Reihe nebeneinander angeordneter Buttons, von denen genau einer aktiv ist. Geeignet für 2–5 sich ausschließende Optionen.
Designer-Attribute
| Attribut | Beschreibung | Default |
|---|---|---|
controlId | Eindeutige ID | automatisch generiert |
selectedKey | key des aktuell selektierten Items | leer |
enabled | Komponente aktiv | true |
visible | Sichtbar | true |
width | Breite (CSS-Wert) | – |
spanS / spanM / spanL / spanXL | Grid-Layout | 12 |
Items werden als Kind-Komponenten (SegmentedButtonItem) im View-Tree gepflegt.
SegmentedButtonItem
| Attribut | Beschreibung |
|---|---|
key | Eindeutiger Schlüssel (für Auswahl) |
text | Anzeigetext |
icon | Optional: SAP-Icon-URL |
enabled | Klickbar |
onPress | Event-Methodenname |
ABAP-API
Zugriff über me->get_segmented_button( '<controlId>' ).
| Methode | Zweck |
|---|---|
GET_SELECTED_KEY / SET_SELECTED_KEY | Selektierter Key |
GET_ITEMS | Tabelle aller Items |
GET_ITEM | Item nach key |
ADD_ITEM | Neues Item anhängen |
Item-Konstruktor: /mobbuild/cl_seg_button_item=>create( ).
| SegmentedButtonItem-Methode | Zweck |
|---|---|
SET_KEY / GET_KEY | Schlüssel |
SET_TEXT / GET_TEXT | Anzeigetext |
SET_ICON / GET_ICON | Icon |
SET_ON_PRESS | Event-Methodenname |
Geerbte Methoden: siehe Control.
Beispiel: /mobbuild/cl_ex_seg_button
Das Beispiel liest Event-Key und Sender und ergänzt im PBO einen zweiten SegmentedButton dynamisch mit drei Items:
abap
METHOD on_pai.
DATA(lo_event) = me->get_event( ).
DATA(lv_event_key) = lo_event->get_event_key( ).
DATA(lv_sender) = lo_event->get_sender( ).
DATA(lo_button) = me->get_segmented_button( 'btnSegmented1' ).
DATA(lo_button_items) = lo_button->get_items( ).
DATA(lo_button_item) = lo_button->get_item( 'one' ).
me->set_message_toast(
me->create_message_toast( |Press: { lv_event_key } | ) ).
ENDMETHOD.abap
METHOD on_pbo.
" Dynamische Items für btnDynamic
DATA(lo_segmented_item_add) = /mobbuild/cl_seg_button_item=>create( ).
lo_segmented_item_add->set_icon( 'sap-icon://add' ).
lo_segmented_item_add->set_text( 'add' ).
lo_segmented_item_add->set_key( 'add' ).
lo_segmented_item_add->set_on_press( 'add' ).
DATA(lo_segmented_item_accept) = /mobbuild/cl_seg_button_item=>create( ).
lo_segmented_item_accept->set_icon( 'sap-icon://create' ).
lo_segmented_item_accept->set_text( 'accept' ).
lo_segmented_item_accept->set_key( 'accept' ).
lo_segmented_item_accept->set_on_press( 'accept' ).
DATA(lo_segmented_item_delete) = /mobbuild/cl_seg_button_item=>create( ).
lo_segmented_item_delete->set_icon( 'sap-icon://delete' ).
lo_segmented_item_delete->set_text( 'delete' ).
lo_segmented_item_delete->set_key( 'delete' ).
lo_segmented_item_delete->set_on_press( 'delete' ).
DATA(lo_segemeted_button) = me->get_segmented_button( 'btnDynamic' ).
lo_segemeted_button->add_item( lo_segmented_item_add ).
lo_segemeted_button->add_item( lo_segmented_item_accept ).
lo_segemeted_button->add_item( lo_segmented_item_delete ).
lo_segemeted_button->set_selected_key( 'accept' ).
ENDMETHOD.Events im Designer
| Event | Auslöser |
|---|---|
onSelectionChange | Auswahl gewechselt |
Pro Item onPress | Klick auf das Item |
Nächste Schritte
- RadioGroup – Alternative mit klassischem Radio-Button-Look
- Button – einzelne Aktion ohne Auswahl-Charakter