我想通过编辑AOSP将导航栏(具有系统软键,如背面,主页和菜单,而不是导航抽屉!)放在(右)侧,如下所示.
+-------------------------------------------------+---+
| Status bar (always) | |
+-------------------------------------------------+ N |
| (Layout with background drawable) | a |
| +---------------------------------------------+ | v |
| | Title/Action bar (optional) | | |
| +---------------------------------------------+ | B |
| | Content, vertical extending | | a |
| | | | r |
| +---------------------------------------------+ | |
+-------------------------------------------------+---+
Run Code Online (Sandbox Code Playgroud)
到目前为止,我假设RenderSessionImpl.java是要编辑的文件来完成此任务,因为它呈现的屏幕布局取决于给定的屏幕方向值.
我找到了下一个片段并编辑了方向参数(HORIZONTAL - > VERTICAL),因此它会创建一个水平布局,右侧是导航栏.
if (mNavigationBarOrientation == LinearLayout.HORIZONTAL &&
mNavigationBarSize > 0) {
// system bar
try {
NavigationBar navigationBar …Run Code Online (Sandbox Code Playgroud) loadJSON(path, callback) {
console.log("path: " + path);
var xobj = new XMLHttpRequest();
xobj.overrideMimeType("application/json");
xobj.open('GET', path, true);
xobj.onreadystatechange = function () {
if (xobj.readyState == 4 && xobj.status == "200") {
callback(xobj.responseText);
}
};
xobj.send(null);
}
Run Code Online (Sandbox Code Playgroud)
以上是本地访问json文件的函数。然后从‘foobar()’解析检索到的数据。但是,从回调函数的“外部”无法访问变量“json”。我搜索了类似的 SO 问题和异步概念,但仍然无法找到解决方法。
function foobar() {
var json;
loadJSON("data.json", function(response) {
json = JSON.parse(response);
console.log(json[0].name); // Successfully shows the result
});
console.log(json[0].name); // TypeError: json is undefined
}
Run Code Online (Sandbox Code Playgroud)
有没有办法访问回调的“外部”变量?