如何使切换按钮组响应

How to make group of toggle buttons responsive

切换按钮的xml:

<HBox id="toggleButtons1" fitContainer="false" class="fullWidthButtons" alignItems="Center">
            <items>
        <ToggleButton text="BUTTON1" enabled="true" pressed="true" press=".onPress1" class="firsttogglebutton" >
            <layoutData>
            <FlexItemData growFactor="1" />
          </layoutData>
        </ToggleButton>
        <ToggleButton text="BUTTON2" enabled="true" pressed="false" press=".onPress2">
            <layoutData>
            <FlexItemData growFactor="1" />
          </layoutData>
        </ToggleButton>
        <ToggleButton text="BUTTON3" enabled="true" pressed="false" press=".onPress3">
            <layoutData>
            <FlexItemData growFactor="1" />
          </layoutData>
        </ToggleButton>
            </items>
    </HBox>

我正在检查响应,当在 small/medium 设备中查看时,它非常适合所有尺寸的设备:

供参考:

但是当我更改(放大)按钮内的文本时,它没有响应。可能是什么原因?如何克服这个问题?

我尝试用 FlexBox 替换 HBox 但它是一样的(也许我应该包含更多属性)。

Controller.js:

sap.ui.define("myController", [
  "sap/ui/core/mvc/Controller"
], function(Controller) {
  "use strict";

  var toggleButtons1;

  return Controller.extend("myController", {
    onInit: function() {
      toggleButtons1 = this.byId("toggleButtons1").getItems();
    },

    onPressNext: function(e) {
      for (var i = 0; i < toggleButtons1.length - 1; ++i) {
        if (toggleButtons1[i].getPressed()) {
          toggleButtons1[i].setPressed(false);
          toggleButtons1[i + 1].setPressed(true);
          break;
        }
      }
    },

    onPressPrevious: function() {
      for (var i = toggleButtons1.length - 1; i > 0; --i) {
        if (toggleButtons1[i].getPressed()) {
          toggleButtons1[i - 1].setPressed(true);
        }
      }
    },

    onPress: function(e) {
      var btn = e.getSource();
      if(!btn.getPressed()) {
        btn.setPressed(true);
        return;
      }
      for (var i = 0; i < toggleButtons1.length; ++i) {
        if (toggleButtons1[i] != btn) {
          toggleButtons1[i].setPressed(false);
        }
      }
    },

    onPress1: function(e) {
       this.onPress(e);
       alert("Do something here!");
    }
  });
});

view.xml

<l:Grid id="gridToggleButtons" containerQuery="true" defaultSpan="XL2 L4 M4 S6">
  <ToggleButton text="BUTTON1EEE" enabled="true" pressed="true" press=".onPress1" class="firsttogglebutton" />
  <ToggleButton text="BUTTON2EEE" enabled="true" pressed="false" press=".onPress2" />
  <ToggleButton text="BUTTON3EEE" enabled="true" pressed="false" press=".onPress3" />
</l:Grid>

controller.js

var oGrid = this.byId("gridToggleButtons");
var oBtns = oGrid.getContent();
var oBUTTON1EEE = oBtns[0];
var oBUTTON2EEE = oBtns[1];
var oBUTTON3EEE = oBtns[2];

注意:containerQuery 用于根据网格大小而不是根据设备大小(大、中和小)获取大小。 defaultSpan 根据您的要求设置。有关网格的更多信息,请访问 Grid API