Skip to content

SegmentedButton

Eine Reihe nebeneinander angeordneter Buttons, von denen genau einer aktiv ist. Geeignet für 2–5 sich ausschließende Optionen.

Designer-Attribute

AttributBeschreibungDefault
controlIdEindeutige IDautomatisch generiert
selectedKeykey des aktuell selektierten Itemsleer
enabledKomponente aktivtrue
visibleSichtbartrue
widthBreite (CSS-Wert)
spanS / spanM / spanL / spanXLGrid-Layout12

Items werden als Kind-Komponenten (SegmentedButtonItem) im View-Tree gepflegt.

SegmentedButtonItem

AttributBeschreibung
keyEindeutiger Schlüssel (für Auswahl)
textAnzeigetext
iconOptional: SAP-Icon-URL
enabledKlickbar
onPressEvent-Methodenname

ABAP-API

Zugriff über me->get_segmented_button( '<controlId>' ).

MethodeZweck
GET_SELECTED_KEY / SET_SELECTED_KEYSelektierter Key
GET_ITEMSTabelle aller Items
GET_ITEMItem nach key
ADD_ITEMNeues Item anhängen

Item-Konstruktor: /mobbuild/cl_seg_button_item=>create( ).

SegmentedButtonItem-MethodeZweck
SET_KEY / GET_KEYSchlüssel
SET_TEXT / GET_TEXTAnzeigetext
SET_ICON / GET_ICONIcon
SET_ON_PRESSEvent-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

EventAuslöser
onSelectionChangeAuswahl gewechselt
Pro Item onPressKlick auf das Item

Nächste Schritte

  • RadioGroup – Alternative mit klassischem Radio-Button-Look
  • Button – einzelne Aktion ohne Auswahl-Charakter