1.解决首页偶尔闪屏的问题
Showing
5 changed files
with
60 additions
and
33 deletions
| ... | @@ -5708,8 +5708,8 @@ | ... | @@ -5708,8 +5708,8 @@ |
| 5708 | } | 5708 | } |
| 5709 | ], | 5709 | ], |
| 5710 | "_useOriginalSize": false, | 5710 | "_useOriginalSize": false, |
| 5711 | "_string": "v0.9.0.2020031313", | 5711 | "_string": "v0.9.0.2020031610", |
| 5712 | "_N$string": "v0.9.0.2020031313", | 5712 | "_N$string": "v0.9.0.2020031610", |
| 5713 | "_fontSize": 24, | 5713 | "_fontSize": 24, |
| 5714 | "_lineHeight": 24, | 5714 | "_lineHeight": 24, |
| 5715 | "_enableWrapText": true, | 5715 | "_enableWrapText": true, | ... | ... |
| ... | @@ -71,7 +71,8 @@ cc.Class({ | ... | @@ -71,7 +71,8 @@ cc.Class({ |
| 71 | this._bAbleHotUpdate = false; | 71 | this._bAbleHotUpdate = false; |
| 72 | this._bIsDataListMoving = false; | 72 | this._bIsDataListMoving = false; |
| 73 | this._bIsScrollViewMoving = false; | 73 | this._bIsScrollViewMoving = false; |
| 74 | this._bInitCategoryListSuccess = true; | 74 | this._bInitCategoryListSuccess = false; |
| 75 | this._bInitRecommendDataSuccess = false; | ||
| 75 | this._scrollview = this.node.getComponent(cc.ScrollView); | 76 | this._scrollview = this.node.getComponent(cc.ScrollView); |
| 76 | this._oSceneContext.focusPath = "scrollContent/TopNavi/topNavi1"; | 77 | this._oSceneContext.focusPath = "scrollContent/TopNavi/topNavi1"; |
| 77 | this._oSceneContext._iPageIndex = 1; | 78 | this._oSceneContext._iPageIndex = 1; |
| ... | @@ -621,6 +622,9 @@ cc.Class({ | ... | @@ -621,6 +622,9 @@ cc.Class({ |
| 621 | // cc.log("子节点:"+nodeLayout.childrenCount); | 622 | // cc.log("子节点:"+nodeLayout.childrenCount); |
| 622 | } | 623 | } |
| 623 | 624 | ||
| 625 | this._bInitRecommendDataSuccess = true; | ||
| 626 | this.checkDataReadyAndInitFocus(); | ||
| 627 | |||
| 624 | // this.node.getChildByName("scrollContent").height = 2300; //这里暂且写死,scrollView有bug | 628 | // this.node.getChildByName("scrollContent").height = 2300; //这里暂且写死,scrollView有bug |
| 625 | // this._scrollview.scrollToTop(); | 629 | // this._scrollview.scrollToTop(); |
| 626 | } catch (error) { | 630 | } catch (error) { |
| ... | @@ -633,13 +637,13 @@ cc.Class({ | ... | @@ -633,13 +637,13 @@ cc.Class({ |
| 633 | }, | 637 | }, |
| 634 | 638 | ||
| 635 | recoverFocusPath: function () { | 639 | recoverFocusPath: function () { |
| 636 | if (this._oSceneContext._iCurrentLeftIndex == 1) { | 640 | // if (this._oSceneContext._iCurrentLeftIndex == 1) {//在调用处已经判断了,不需要重复判断 |
| 637 | if (this._oSceneContext._iPageIndex == 1) { | 641 | if (this._oSceneContext._iPageIndex == 1) { |
| 638 | this.scheduleOnce(() => { | 642 | this.scheduleOnce(() => { |
| 639 | let fiFocusTarget = cc.find(this._oSceneContext.focusPath, this.node).getComponent(FocusInfo); | 643 | let fiFocusTarget = cc.find(this._oSceneContext.focusPath, this.node).getComponent(FocusInfo); |
| 640 | this._cFocus.flyFocus(this._fiCurrentFocus, fiFocusTarget, Common.MOVE_DIRECTION_DOWN, null, null); | 644 | this._cFocus.flyFocus(this._fiCurrentFocus, fiFocusTarget, Common.MOVE_DIRECTION_DOWN, null, null); |
| 641 | return; | 645 | return; |
| 642 | }, 0) | 646 | }, 0); |
| 643 | } | 647 | } |
| 644 | let height = this._aBgHeight[this._oSceneContext._iPageIndex - 1] || 0; //-1,打补丁:解决回退回来页面对不上的bug | 648 | let height = this._aBgHeight[this._oSceneContext._iPageIndex - 1] || 0; //-1,打补丁:解决回退回来页面对不上的bug |
| 645 | this.onScrollViewScrollStart(); | 649 | this.onScrollViewScrollStart(); |
| ... | @@ -652,9 +656,9 @@ cc.Class({ | ... | @@ -652,9 +656,9 @@ cc.Class({ |
| 652 | // cc.log("执行恢复跳转。。。" + this._oSceneContext.focusPath); | 656 | // cc.log("执行恢复跳转。。。" + this._oSceneContext.focusPath); |
| 653 | let fiFocusTarget = cc.find(this._oSceneContext.focusPath, this.node).getComponent(FocusInfo); | 657 | let fiFocusTarget = cc.find(this._oSceneContext.focusPath, this.node).getComponent(FocusInfo); |
| 654 | this._cFocus.flyFocus(this._fiCurrentFocus, fiFocusTarget, Common.MOVE_DIRECTION_DOWN, null, null); | 658 | this._cFocus.flyFocus(this._fiCurrentFocus, fiFocusTarget, Common.MOVE_DIRECTION_DOWN, null, null); |
| 655 | this.scheduleOnce(showFocusCallback, 0.2); | 659 | this.scheduleOnce(showFocusCallback, 0.5); |
| 656 | }, 0.3); | 660 | }, 0.5); |
| 657 | } | 661 | // } |
| 658 | 662 | ||
| 659 | }, | 663 | }, |
| 660 | 664 | ||
| ... | @@ -813,7 +817,7 @@ cc.Class({ | ... | @@ -813,7 +817,7 @@ cc.Class({ |
| 813 | this._bInitCategoryListSuccess = true; | 817 | this._bInitCategoryListSuccess = true; |
| 814 | this._oSceneContext.categoryRecordIndexOfFirstCell = lvCategoryList.getRecordIndexOfFirstCellInPage(); | 818 | this._oSceneContext.categoryRecordIndexOfFirstCell = lvCategoryList.getRecordIndexOfFirstCellInPage(); |
| 815 | 819 | ||
| 816 | this.checkDataReadyAndInitFocus(this._bInitCategoryListSuccess); | 820 | this.checkDataReadyAndInitFocus(); |
| 817 | }); | 821 | }); |
| 818 | // }, | 822 | // }, |
| 819 | // null, | 823 | // null, |
| ... | @@ -824,7 +828,8 @@ cc.Class({ | ... | @@ -824,7 +828,8 @@ cc.Class({ |
| 824 | }, | 828 | }, |
| 825 | 829 | ||
| 826 | checkDataReadyAndInitFocus: function () { | 830 | checkDataReadyAndInitFocus: function () { |
| 827 | if (!this._bIsFocusInit) { | 831 | // cc.log("checkDataReadyAndInitFocus:"+(!this._bIsFocusInit && (this._bInitRecommendDataSuccess || this._bInitCategoryListSuccess))); |
| 832 | if (!this._bIsFocusInit && (this._bInitRecommendDataSuccess || this._bInitCategoryListSuccess)) { | ||
| 828 | this.scheduleOnce(() => { //指定0让回调函数在下一帧立即执行 | 833 | this.scheduleOnce(() => { //指定0让回调函数在下一帧立即执行 |
| 829 | this.initFocus(); | 834 | this.initFocus(); |
| 830 | }, 0); | 835 | }, 0); |
| ... | @@ -868,19 +873,21 @@ cc.Class({ | ... | @@ -868,19 +873,21 @@ cc.Class({ |
| 868 | Common.SCREEN_WIDTH, Common.SCREEN_HEIGHT, 10, 6, 1.1, true); | 873 | Common.SCREEN_WIDTH, Common.SCREEN_HEIGHT, 10, 6, 1.1, true); |
| 869 | this._cFocus.hide(); | 874 | this._cFocus.hide(); |
| 870 | 875 | ||
| 871 | if (this._oSceneContext.focusPath != "scrollContent/TopNavi/topNavi1") | 876 | if (!Common._bIsHotUpdate) { |
| 877 | Common._bIsHotUpdate = true; | ||
| 878 | this.checkUpdate(); //热更新 | ||
| 879 | } | ||
| 880 | |||
| 881 | if (this._oSceneContext.focusPath != "scrollContent/TopNavi/topNavi1" && this._oSceneContext._iCurrentLeftIndex == 1) { | ||
| 872 | this.recoverFocusPath(); //有必要的话去恢复焦点记忆 | 882 | this.recoverFocusPath(); //有必要的话去恢复焦点记忆 |
| 883 | return; | ||
| 884 | } | ||
| 873 | 885 | ||
| 874 | if (this._oSceneContext._iCurrentLeftIndex > 1) { //不是第一个焦点框就跳过去,恢复记忆 | 886 | if (this._oSceneContext._iCurrentLeftIndex > 1) { //不是第一个焦点框就跳过去,恢复记忆 |
| 875 | this.scheduleOnce(function () { | 887 | this.scheduleOnce(function () { |
| 876 | this._cFocus.flyFocus(this._fiCurrentFocus, nodeInitFocus.getComponent(FocusInfo), Common.MOVE_DIRECTION_RIGHT, null, null); | 888 | this._cFocus.flyFocus(this._fiCurrentFocus, nodeInitFocus.getComponent(FocusInfo), Common.MOVE_DIRECTION_RIGHT, null, null); |
| 877 | }, 0); | 889 | }, 0); |
| 878 | } | 890 | } |
| 879 | |||
| 880 | if (!Common._bIsHotUpdate) { | ||
| 881 | Common._bIsHotUpdate = true; | ||
| 882 | this.checkUpdate(); //热更新 | ||
| 883 | } | ||
| 884 | }, | 891 | }, |
| 885 | 892 | ||
| 886 | keyDownDirection: function (Direct) { | 893 | keyDownDirection: function (Direct) { |
| ... | @@ -917,9 +924,9 @@ cc.Class({ | ... | @@ -917,9 +924,9 @@ cc.Class({ |
| 917 | // cc.log("目标节点名称:" + fiFocusTarget.node.name); | 924 | // cc.log("目标节点名称:" + fiFocusTarget.node.name); |
| 918 | var leftNavLayout = this.targetAry[0].target; | 925 | var leftNavLayout = this.targetAry[0].target; |
| 919 | 926 | ||
| 920 | if (!this._bInitCategoryListSuccess) { | 927 | // if (!this._bInitCategoryListSuccess) { |
| 921 | return [null, oScrollParameter]; | 928 | // return [null, oScrollParameter]; |
| 922 | } | 929 | // } |
| 923 | 930 | ||
| 924 | if (fiFocusTarget && 0 == fiFocusTarget.node.name.indexOf("topNavi") || 0 == fiFocusTarget.node.name.indexOf("topCell")) { | 931 | if (fiFocusTarget && 0 == fiFocusTarget.node.name.indexOf("topNavi") || 0 == fiFocusTarget.node.name.indexOf("topCell")) { |
| 925 | if (0 != this._fiCurrentFocus.node.name.indexOf("topNavi") && 0 != this._fiCurrentFocus.node.name.indexOf("topCell")) {//如果不是TypeList之间跳转,则哪里来回哪里去 | 932 | if (0 != this._fiCurrentFocus.node.name.indexOf("topNavi") && 0 != this._fiCurrentFocus.node.name.indexOf("topCell")) {//如果不是TypeList之间跳转,则哪里来回哪里去 | ... | ... |
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/res/layout/activity_main_obi_bg.xml
0 → 100644
| 1 | <?xml version="1.0" encoding="utf-8"?> | ||
| 2 | <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 3 | android:id="@+id/ll_single" | ||
| 4 | android:layout_width="match_parent" | ||
| 5 | android:layout_height="match_parent" | ||
| 6 | android:visibility="gone"> | ||
| 7 | |||
| 8 | <ImageView | ||
| 9 | android:id="@+id/iv" | ||
| 10 | android:layout_width="match_parent" | ||
| 11 | android:layout_height="match_parent" | ||
| 12 | android:src="@mipmap/icon_bg"/> | ||
| 13 | |||
| 14 | </RelativeLayout> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -151,8 +151,8 @@ public class TopdrawSDKWrapper { | ... | @@ -151,8 +151,8 @@ public class TopdrawSDKWrapper { |
| 151 | public static void startGame(String apkName, final String strJSCallBack) { | 151 | public static void startGame(String apkName, final String strJSCallBack) { |
| 152 | Log.d(TAG, "TopdrawSDKWrapper starGame start..." + apkName); | 152 | Log.d(TAG, "TopdrawSDKWrapper starGame start..." + apkName); |
| 153 | 153 | ||
| 154 | View view = _activity.getProgressBarView(); | ||
| 155 | final View singleColorView = _activity.getSingleColorView(); | 154 | final View singleColorView = _activity.getSingleColorView(); |
| 155 | View view = _activity.getProgressBarView(); | ||
| 156 | final RelativeLayout relativeLayout = view.findViewById(R.id.rl_img); | 156 | final RelativeLayout relativeLayout = view.findViewById(R.id.rl_img); |
| 157 | if (pluginLoaded) { | 157 | if (pluginLoaded) { |
| 158 | return; | 158 | return; |
| ... | @@ -248,6 +248,7 @@ public class TopdrawSDKWrapper { | ... | @@ -248,6 +248,7 @@ public class TopdrawSDKWrapper { |
| 248 | return; | 248 | return; |
| 249 | } | 249 | } |
| 250 | pluginLoaded = true; | 250 | pluginLoaded = true; |
| 251 | final View obiView = _activity.getObiView(); | ||
| 251 | final String packageName = apkName; | 252 | final String packageName = apkName; |
| 252 | final String className = claName; | 253 | final String className = claName; |
| 253 | OBiPluginLoader.getInstance().start(downloadUrl, packageName, new OBiPluginLoader.OnResultListener() { | 254 | OBiPluginLoader.getInstance().start(downloadUrl, packageName, new OBiPluginLoader.OnResultListener() { |
| ... | @@ -268,19 +269,12 @@ public class TopdrawSDKWrapper { | ... | @@ -268,19 +269,12 @@ public class TopdrawSDKWrapper { |
| 268 | } | 269 | } |
| 269 | } | 270 | } |
| 270 | 271 | ||
| 271 | // _activity.runOnUiThread(new Runnable() { //直接加载游戏,传回去进度是100 | 272 | _activity.runOnUiThread(new Runnable() { //直接加载游戏,传回去进度是100 |
| 272 | // @Override | 273 | @Override |
| 273 | // public void run() { | 274 | public void run() { |
| 274 | // _activity.runOnGLThread(new Runnable() { | 275 | obiView.setVisibility(View.VISIBLE); |
| 275 | // @Override | 276 | } |
| 276 | // public void run() { | 277 | }); |
| 277 | // Cocos2dxJavascriptJavaBridge.evalString( | ||
| 278 | // "cc.find('Canvas',cc.director.getScene()).getComponent(cc.Topdraw.TVCanvas)." + strJSCallBack + "('" + 100 + "');" //modify jerry | ||
| 279 | // ); | ||
| 280 | // } | ||
| 281 | // }); | ||
| 282 | // } | ||
| 283 | // }); | ||
| 284 | 278 | ||
| 285 | } else if (-10 == i) { | 279 | } else if (-10 == i) { |
| 286 | Toast.makeText(_activity, msg, Toast.LENGTH_LONG).show(); | 280 | Toast.makeText(_activity, msg, Toast.LENGTH_LONG).show(); | ... | ... |
| ... | @@ -60,8 +60,10 @@ public class AppActivity extends Cocos2dxActivity { | ... | @@ -60,8 +60,10 @@ public class AppActivity extends Cocos2dxActivity { |
| 60 | private BroadcastReceiver receiver = null; | 60 | private BroadcastReceiver receiver = null; |
| 61 | private View view; | 61 | private View view; |
| 62 | private View singleView; | 62 | private View singleView; |
| 63 | private View obiView; | ||
| 63 | private RelativeLayout relativeLayout; | 64 | private RelativeLayout relativeLayout; |
| 64 | private RelativeLayout mRLSingleColor; | 65 | private RelativeLayout mRLSingleColor; |
| 66 | private RelativeLayout mOBiLayout; | ||
| 65 | 67 | ||
| 66 | @Override | 68 | @Override |
| 67 | protected void onCreate(Bundle savedInstanceState) { | 69 | protected void onCreate(Bundle savedInstanceState) { |
| ... | @@ -71,6 +73,11 @@ public class AppActivity extends Cocos2dxActivity { | ... | @@ -71,6 +73,11 @@ public class AppActivity extends Cocos2dxActivity { |
| 71 | mRLSingleColor = singleView.findViewById(R.id.ll_single); | 73 | mRLSingleColor = singleView.findViewById(R.id.ll_single); |
| 72 | mFrameLayout.addView(singleView); | 74 | mFrameLayout.addView(singleView); |
| 73 | //---- end | 75 | //---- end |
| 76 | //----解决奥比游戏安装时,露出详情页不能刷新的问题 | ||
| 77 | obiView = LayoutInflater.from(this).inflate(R.layout.activity_main_obi_bg, null); | ||
| 78 | mOBiLayout = obiView.findViewById(R.id.ll_single); | ||
| 79 | mFrameLayout.addView(obiView); | ||
| 80 | //---- end | ||
| 74 | //添加加载小游戏进度条(暂时将Cocos2dxActivity中的this.mGLSurfaceView.setZOrderOnTop(true);注释,否则显示不出来) | 81 | //添加加载小游戏进度条(暂时将Cocos2dxActivity中的this.mGLSurfaceView.setZOrderOnTop(true);注释,否则显示不出来) |
| 75 | view = LayoutInflater.from(this).inflate(R.layout.activity_main, null); | 82 | view = LayoutInflater.from(this).inflate(R.layout.activity_main, null); |
| 76 | relativeLayout = view.findViewById(R.id.rl_img); | 83 | relativeLayout = view.findViewById(R.id.rl_img); |
| ... | @@ -143,6 +150,7 @@ public class AppActivity extends Cocos2dxActivity { | ... | @@ -143,6 +150,7 @@ public class AppActivity extends Cocos2dxActivity { |
| 143 | super.onResume(); | 150 | super.onResume(); |
| 144 | SDKWrapper.getInstance().onResume(); | 151 | SDKWrapper.getInstance().onResume(); |
| 145 | mRLSingleColor.setVisibility(View.GONE); | 152 | mRLSingleColor.setVisibility(View.GONE); |
| 153 | mOBiLayout.setVisibility(View.GONE); | ||
| 146 | } | 154 | } |
| 147 | 155 | ||
| 148 | @Override | 156 | @Override |
| ... | @@ -248,6 +256,10 @@ public class AppActivity extends Cocos2dxActivity { | ... | @@ -248,6 +256,10 @@ public class AppActivity extends Cocos2dxActivity { |
| 248 | return mRLSingleColor; | 256 | return mRLSingleColor; |
| 249 | } | 257 | } |
| 250 | 258 | ||
| 259 | public View getObiView() { | ||
| 260 | return mOBiLayout; | ||
| 261 | } | ||
| 262 | |||
| 251 | //打出场景日志 Info | 263 | //打出场景日志 Info |
| 252 | public static void logInSceneI(String strLog) { | 264 | public static void logInSceneI(String strLog) { |
| 253 | Log.i("logInSceneI", strLog); | 265 | Log.i("logInSceneI", strLog); | ... | ... |
-
Please register or sign in to post a comment