sapui5 - 如何通过代码跳转到移动设备上的另一个拆分窗格?
问题描述
我有一个sap.ui.layout.ResponsiveSplitter,如下所示:
目标是,当我按下跳转按钮时,它应该跳转到第二个拆分窗格:
观点是:
<mvc:View controllerName="sap.ui.layout.sample.ResponsiveSplitter.C" xmlns:l="sap.ui.layout" xmlns:mvc="sap.ui.core.mvc"
xmlns:core="sap.ui.core" xmlns:m="sap.m" height="100%">
<l:ResponsiveSplitter defaultPane="Detail">
<l:PaneContainer>
<l:SplitPane requiredParentWidth="500" id="Selection">
<m:Panel height="100%">
<m:Label text="Selection"/>
<m:Button text="Jump" press="onPress"/>
</m:Panel>
<l:layoutData>
<l:SplitterLayoutData size="20%"/>
</l:layoutData>
</l:SplitPane>
<l:SplitPane requiredParentWidth="500" id="Detail">
<m:Panel height="100%">
<m:Label text="Detail"/>
</m:Panel>
</l:SplitPane>
</l:PaneContainer>
</l:ResponsiveSplitter>
</mvc:View>
和 JavaScript 代码:
sap.ui.define([
'jquery.sap.global',
'sap/ui/core/mvc/Controller',
'sap/ui/model/json/JSONModel'
], function(jQuery, Controller, JSONModel) {
"use strict";
var ResponsiveSplitterController = Controller.extend("sap.ui.layout.sample.ResponsiveSplitter.C", {
onInit : function () {
},
onPress: function() {
}
});
return ResponsiveSplitterController;
});
我怎么才能得到它?
解决方案
没有公开的方法可以做你想做的事。
但是,在 ResponsiveSplitter 控件中有一个私有方法:
/**
* Sets the indexed page to visible and changes the selected button in the paginator
* @param {int} iPageIndex
* @private
*/
ResponsiveSplitter.prototype._activatePage = function (iPageIndex) {
var $PaginatorButtons = this.$().find(".sapUiResponsiveSplitterPaginatorButton"),
$OldSelectedButton = this.$().find(".sapUiResponsiveSplitterPaginatorSelectedButton"),
iOldActivePage = $PaginatorButtons.index($OldSelectedButton),
aPages = this.getAggregation("_pages") || [];
aPages[iOldActivePage] && aPages[iOldActivePage].setVisible(false);
aPages[iPageIndex] && aPages[iPageIndex].setVisible(true);
$OldSelectedButton.removeClass("sapUiResponsiveSplitterPaginatorSelectedButton");
$PaginatorButtons.eq(iPageIndex).addClass("sapUiResponsiveSplitterPaginatorSelectedButton");
$OldSelectedButton.attr("aria-checked", false);
$PaginatorButtons.eq(iPageIndex).attr("aria-checked", true);
};
通常,我们不应该调用内部方法,因为这些方法不能保证在整个框架版本中保持一致。
推荐阅读
- arrays - 在 VB.NET 的一个消息框中显示数组
- gnuradio - 如何从 arduino 的输出端口读取到我的 GnuRadio 块?
- mysql - SQL:获取两个条件的最后记录
- python - python / ortools / cpsolver - 如果z在x和y之间,a = b
- javascript - 如何修复代码,以便仅针对点击的国家/地区显示附加卡?
- javascript - 如何使用 javascript/jquery 验证 pkcs#7 格式的签名消息
- python - 如何循环遍历熊猫数据框中列中的每一行
- python - BeautifulSoup 和 Selenium 抓取网页,汤不反映更新的 HTML
- javascript - 阻止模态内容默认打开
- mysql - Redis 连接到 my-redis:6379 失败 - 运行种子时 getaddrinfo ENOTFOUND