帖子
帖子
用户
博客
课程
显示全部楼层
53
帖子
0
勋章
522
Y币

[App引擎] SlidLayout 与 tabbar 并存的时候,andriod 4.x tabbar出现问题

[复制链接]
发表于 2014-10-12 02:05:24
本帖最后由 毛腿 于 2014-10-13 22:07 编辑

页面中加入了 SlidLayout和 tabBar,之后 andriod 出现了问题

andriod 4.x 以上,tabbar无法拖动 2.x 正常


---------------------------首页 ---------调用了 SlidLayout 页面 和 main (main.html中有 tabbar) 页面------------------------------
<!DOCTYPE html>
<html>
<head>
<title>home</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="copyright" content="www**.**" />
<link rel="stylesheet" type="text/css" href="css/api.css"/>
<link rel="stylesheet" type="text/css" href="css/app.css"/>

<script src="script/api.js"></script>

</head>
<body>
        <div id="wrap">
        <div id="header">
            <h1>APICloud</h1>
        </div>
        <div id="main">

        </div>
        <div id="footer">
            <h5>Copyright ©2014 </h5>
        </div>
    </div>
</body>
<script>
apiready = function() {
    api.setStatusBarStyle({style:'light'});
        opensl();
}

function opensl(){
        api.openSlidLayout({
        leftEdge:48,
        type:'left',
        fixedPane:{
            name: 'left-menu',
            url: './html/left-menu.html',
        },
        slidPane:{
            name: 'home',
            url: './html/home.html'
        }
        }, function(ret) {
            //alert(1);
        }
    );
}
</script>
</html>




-------------------------------------调用 tabbar 的页面 mian.html--------------------------------------------
<!DOCTYPE html>
<html>

        <head>
                <title>home</title>
                <meta charset="utf-8">
                <meta name='viewport' content='maximum-scale=1.0,minimum-scale=1.0,user-scalable=no,width=device-width,initial-scale=1.0'/>
                <script src="../script/jquery-1.11.1.min.js"></script>
               
                <!--<script src="../script/app.js"></script>-->
                <link rel="stylesheet" type="text/css" href="../css/api.css" />
                <link rel="stylesheet" type="text/css" href="../css/app.css" />

        </head>

        <body>

                <header id="header">
                        <a class="sidemenu" tapmode="sidemenu-hov"></a>
                        <div class="middle">tabBar</div>
                        <a class="sideuser" tapmode="sideuser-hov"></a>
                </header>


        </body>
        <script src="../script/api.js"></script>
        <script type='text/javascript'>
                apiready = function() {
                 var header = $api.byId('header');
        $api.fixIos7Bar(header);
        api.addEventListener({
                                name: 'keyback'
                        },
                        function(ret, err) {
                                api.closeWidget();
                        }
             );
                        opentablebar();
                        setTimeout(removeLaunch, 1500);
                }

                function removeLaunch() {
                        api.removeLaunchView();
                }

                function opentablebar() {
                        var tabBar = api.require('tabBar');
                        
                        tabBar.open({
                                bgImg: "widget://res/tabBar_bg.png",
                                selectImg: "widget://res/selecte_tabBar.png",
                                perScreenBtn:5,
                                items: [
                                  {title:'首页',img:'widget://res/tabBar_item2.png'},
                                  {title:'首页',img:'widget://res/tabBar_item2.png'},
                                  {title:'首页',img:'widget://res/tabBar_item2.png'},
                                  {title:'首页',img:'widget://res/tabBar_item2.png'},
                                  {title:'首页',img:'widget://res/tabBar_item2.png'},
                                  {title:'首页',img:'widget://res/tabBar_item2.png'},
                                  {title:'首页',img:'widget://res/tabBar_item2.png'}
                                
                                ]
                        }, function(ret, err) {
                                api.alert({
                                        msg: '点击了第' + ret.index + '个按钮'
                                });
                        });
                        
        
                }
        </script>

</html>

53
帖子
0
勋章
522
Y币
本帖最后由 毛腿 于 2014-10-13 22:06 编辑

在 中兴zte-u880 android版本 2.2.2 环境下 以上代码 无问题,SlidLayout 和 tabbar 都正常,出问题的设备是小米m1, 小米 m1 的系统环境是 安卓 4.4 miui5
53
帖子
0
勋章
522
Y币
本帖最后由 毛腿 于 2014-10-12 14:36 编辑

呵呵 iphone5s下 tabBar 点击直接关闭widget的问题找到了
错误代码如下:
  • apiready = function() {
  • var header = $api.byId('header');
  • $api.fixIos7Bar(header);
  • api.addEventListener({
  •     name: 'keyback'
  • },
  • function(ret, err) {
  •     api.closeWidget();
  • //api.closeWin();
  • });
  • opentablebar();
  • };

如果 opentablebar() 事件在 api.addEventListener 下方 ,在 ios 中 点击 tabBar 会触发  api.addEventListener,所以直接退出了。
解决方法 把 opentablebar() 移到 api.addEventListener  上方


正确代码如下:apiready = function() {
var header = $api.byId('header');
$api.fixIos7Bar(header);
opentablebar();
api.addEventListener({
    name: 'keyback'
},
function(ret, err) {
    api.closeWidget();
//api.closeWin();
});

};
这是一个bug吗?

53
帖子
0
勋章
522
Y币
依然无法解决 小米M1 下 sidemain 和 tabbar 共存时, tabBar 无法拖拽的问题,没有sidemain 可以拖拽
20
帖子
1
勋章
7589
Y币
您好,经验证,是底层处理事件发生冲突所致,这个问题我们记下了,正在排查中。下个版本release将会有所体现。感谢反馈!
您需要登录后才可以回帖 登录

本版积分规则