我尝试制作一个MatrixLayout,其中1列包含2行文本,1列包含一行文本和一个Icon。
目前它看起来像这样:
问题:图标浮动到文本元素的右侧,但应位于文本下方。这是为什么?
问题:列宽为50%/ 50%,我需要它们为30%/ 70%。我试图为MatrixLayout设置属性“widths”,但在我的XML视图中,我不能像widths="[30%, 70%]"
那样设置它们,因为然后控制台说:
未捕获错误:“[30%,70%]”是对象类型,对于Element sap.ui.commons.layout.MatrixLayout #__ layout1的属性“widths”,预期sap.ui.core.CSSSize [] p>
视图中的摘录:
<layout:MatrixLayout
layoutFixed="false"
columns="2"
width="100%"
widths="10%, 90%"
>
<layout:MatrixLayoutRow>
<layout:cells>
<layout:MatrixLayoutCell>
<Text width="80%" maxLines="1" clampHeight="1" text="lululajksdhkajsdh askdahksdhahsdjkahjksdhasd kjahsdkjahsdhasjkdhasjd ">
</Text>
<Text width="80%" maxLines="1" clampHeight="1" text="lululajksdhkajsdh askdahksdhahsdjkahjksdhasd kjahsdkjahsdhasjkdhasjd ">
</Text>
</layout:MatrixLayoutCell>
<layout:MatrixLayoutCell>
<Text width="80%" maxLines="1" clampHeight="1" text="lululajksdhkajsdh askdahksdhahsdjkahjksdhasd kjahsdkjahsdhasjkdhasjd ">
</Text>
<core:Icon src="sap-icon://add"></core:Icon>
</layout:MatrixLayoutCell>
</layout:cells>
</layout:MatrixLayoutRow>
</layout:MatrixLayout>
我做错了什么?感谢..
答案 0 :(得分:1)
我认为你不能直接在XMLView中指定它 - 因为它是一个数组,我不认为你可以直接在属性中指定它
但是,如果您为MatrixLayout
指定了ID,您当然可以使用控制器完美地设置它:
onAfterRendering: function() {
this.byId("myMatrixLayout").setWidths(["30%", "70%"]);
}
编辑:我还注意到您在MatrixLayoutCell
中设置了多个控件
虽然这可能有效,但通常最好将每个控件放在自己的单元格中,以便更好地控制布局:
<l:MatrixLayout id="myLayout">
<l:MatrixLayoutRow>
<l:MatrixLayoutCell><Text text="In pharetra diam pretium bibendum" /></l:MatrixLayoutCell>
<l:MatrixLayoutCell><Text text="Sed tristique diam non imperdiet commodo" /></l:MatrixLayoutCell>
</l:MatrixLayoutRow>
<l:MatrixLayoutRow>
<l:MatrixLayoutCell><Text text="At tincidunt purus finibus" /></l:MatrixLayoutCell>
<l:MatrixLayoutCell><core:Icon src="sap-icon://add" /></l:MatrixLayoutCell>
</l:MatrixLayoutRow>
</l:MatrixLayout>
答案 1 :(得分:0)
您可以直接在XMLView中指定它
<l:MatrixLayout xmlns="sap.ui.commons"
width="100%"
height="100%"
columns="3"
widths="50%,40%,10%">
<l:rows></l:rows>
</l:MatrixLayout>