SAPUI5 FlexBox 中输入的宽度

Mat*_*eão 2 flexbox sapui5

尝试在 FlexBox 容器内扩展 Input 的宽度。我希望它与父容器的宽度相同。这是我的 view.xml:

<mvc:View xmlns:l="sap.ui.layout" xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m">
    <l:VerticalLayout id="idVL" class="sapUiContentPadding" width="100%">
        <l:content>
            <Panel id="idPnl">
                <FlexBox id="idFB">
                    <Input id="idInput">...</Input>
                </FlexBox>
            </Panel>
        </l:content>
    </l:VerticalLayout>
</mvc:View>
Run Code Online (Sandbox Code Playgroud)

在浏览器中检查页面会发现父 FlexBox 实际上扩展到 VerticalLayout 中设置的宽度。然而,SAPUI5自动创建一个子DIV,不延伸到整个宽度,并把里面输入的是

<div id="xxxxx---view--idFB" data-sap-ui="..." class="..."> //This is the parent FlexBox, it extends to the size of VerticalLayout element.
    <div id="__data4" style="order:0;flex-grow:0;flex-shrink:1;..." class="..."> //This sub-FlexBox is created automatically, and is smaller than it's parent.
        <div id="xxxxx---view--idInput ...> //The input is placed here.
            ...
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我可能是错的,但我怀疑“flex-grow:0”是罪魁祸首,我找不到访问此属性的方法。我尝试在 #idFB 内的 css 中设置它,但没有用。还尝试将它设置在 sub-div 使用的一些类中(如“.sapMFlexItem”),也没有奏效。尝试将每个容器的宽度设置为 100%,也不起作用。该文档没有提及有关手动设置 flex 属性的任何内容。

如何将 flex-grow 设置为 1,或者通过其他方法使输入扩展到与 VerticalLayout 相同的宽度?

注意:我不是 100% 同意在这里使用 FlexBox;我只是不知道我可以用来在其中放置输入和按钮并以编程方式在页面中插入更多的任何其他容器,即:

控制器.js:

addInput: function () {
    var oInput = this.byId("idInput").clone();

    var delButton = new sap.m.Button({
        icon: "sap-icon://delete",
        press: this.deleteInput
    });

    var _oLayout = new sap.m.FlexBox({  // Some other better container?
        items: [oInput, delButton]
    });
    this.byId("idPnl").addContent(_oLayout);
}
Run Code Online (Sandbox Code Playgroud)

Mat*_*eão 5

弄清楚了。需要在 Input 里面放置以下内容:

<Input>
    ...
    <layoutData>
        <FlexItemData growFactor="1"/>
    </layoutData>
</Input>
Run Code Online (Sandbox Code Playgroud)