diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java index 13038d606d..ae5587cd0e 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java @@ -876,27 +876,29 @@ public class EntranceFragment extends MvpFragment { diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/MogoEntranceButtonControllerImpl.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/MogoEntranceButtonControllerImpl.java index 17ee75ccb4..a9b2eea834 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/MogoEntranceButtonControllerImpl.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/MogoEntranceButtonControllerImpl.java @@ -43,4 +43,14 @@ public class MogoEntranceButtonControllerImpl implements IMogoEntranceButtonCont public void init( Context context ) { } + + @Override + public void addLeftFeatureView(View view) { + EntranceViewHolder.getInstance().addLeftFeatureView(view); + } + + @Override + public void removeLeftFeatureView(View view) { + EntranceViewHolder.getInstance().removeLeftFeatureView(view); + } } diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/EntranceViewHolder.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/EntranceViewHolder.java index da48584d37..e555039fe0 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/EntranceViewHolder.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/EntranceViewHolder.java @@ -5,6 +5,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; +import com.mogo.module.extensions.R; import com.mogo.module.extensions.bean.BottomLayerViewWrapper; import com.mogo.utils.logger.Logger; @@ -19,6 +20,7 @@ import java.util.List; public class EntranceViewHolder { private static final String TAG = "EntranceViewHolder"; private List preAddView = new ArrayList<>(); + private List leftFeaturePreAddView = new ArrayList<>(); private EntranceViewHolder(){} private volatile static EntranceViewHolder instance = null; public static EntranceViewHolder getInstance(){ @@ -32,11 +34,13 @@ public class EntranceViewHolder { return instance; } private ViewGroup rootViewGroup = null; + private ViewGroup featureViewGroup = null; public void initRootViewGroup(View rootView) { Logger.i(TAG, "initRootViewGroup=="); if(rootView instanceof ViewGroup) { Logger.d(TAG, "initRootViewGroup 赋值"); rootViewGroup = (ViewGroup) rootView.getParent(); + featureViewGroup = rootView.findViewById(R.id.module_entrance_id_buttons_container); if (!preAddView.isEmpty()) { Logger.d(TAG, "initRootViewGroup 增加底层view: " + preAddView.size()); Iterator iterator = preAddView.iterator(); @@ -46,6 +50,12 @@ public class EntranceViewHolder { iterator.remove(); } } + if (!leftFeaturePreAddView.isEmpty()) { + Logger.d(TAG, "initRootViewGroup 增加左下角FeatureView: " + leftFeaturePreAddView.size()); + for (View view : leftFeaturePreAddView) { + featureViewGroup.addView(view); + } + } } } @@ -79,6 +89,16 @@ public class EntranceViewHolder { return false; } + private boolean containFeatureView(View view) { + int count = featureViewGroup.getChildCount(); + for (int i = 0; i < count; i++) { + if(featureViewGroup.getChildAt(i).equals(view)){ + return true; + } + } + return false; + } + /** * 使用的时候需要预先判断rootViewGroup是否为空,本方法默认rootViewGroup不为空 */ @@ -107,7 +127,36 @@ public class EntranceViewHolder { } } - public void release(){ + public void addLeftFeatureView(View view) { + Logger.d(TAG, "addLeftFeatureView==" + view); + if (featureViewGroup == null) { + // 先缓存起来,等待时机加载 + if(!leftFeaturePreAddView.contains(view)) { + leftFeaturePreAddView.add(view); + } + }else{ + // 直接加载 + if (!containFeatureView(view)) { + featureViewGroup.addView(view); + } + } + } + + public void removeLeftFeatureView(View view) { + if (featureViewGroup != null) { + featureViewGroup.removeView(view); + } + Iterator iterator = leftFeaturePreAddView.iterator(); + while (iterator.hasNext()) { + View wrapper = iterator.next(); + if (wrapper.equals(view)) { + iterator.remove(); + } + } + } + + + public void release(){ rootViewGroup = null; } diff --git a/modules/mogo-module-extensions/src/main/res/layout/include_navi_info_panle.xml b/modules/mogo-module-extensions/src/main/res/layout/include_navi_info_panle.xml index 3bea94c0eb..1c0bebfa10 100644 --- a/modules/mogo-module-extensions/src/main/res/layout/include_navi_info_panle.xml +++ b/modules/mogo-module-extensions/src/main/res/layout/include_navi_info_panle.xml @@ -6,7 +6,7 @@ > + + + \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/values-mdpi/dimens.xml b/modules/mogo-module-extensions/src/main/res/values-mdpi/dimens.xml index 955ddf2c93..05a6e0ff20 100644 --- a/modules/mogo-module-extensions/src/main/res/values-mdpi/dimens.xml +++ b/modules/mogo-module-extensions/src/main/res/values-mdpi/dimens.xml @@ -9,4 +9,7 @@ 14px 14px 8px + 1920px + -1 + 0px \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/values-mdpi/styles.xml b/modules/mogo-module-extensions/src/main/res/values-mdpi/styles.xml new file mode 100644 index 0000000000..b92fcf7d00 --- /dev/null +++ b/modules/mogo-module-extensions/src/main/res/values-mdpi/styles.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/values-xhdpi-1920x1000/dimens.xml b/modules/mogo-module-extensions/src/main/res/values-xhdpi-1920x1000/dimens.xml index 25cd518534..549e102b27 100644 --- a/modules/mogo-module-extensions/src/main/res/values-xhdpi-1920x1000/dimens.xml +++ b/modules/mogo-module-extensions/src/main/res/values-xhdpi-1920x1000/dimens.xml @@ -154,4 +154,8 @@ 8px 21px 31px + 1920px + + -1 + 0px \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/values-xhdpi-1920x1000/styles.xml b/modules/mogo-module-extensions/src/main/res/values-xhdpi-1920x1000/styles.xml new file mode 100644 index 0000000000..b92fcf7d00 --- /dev/null +++ b/modules/mogo-module-extensions/src/main/res/values-xhdpi-1920x1000/styles.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml index 74e08b7cc3..b630f38926 100644 --- a/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml +++ b/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml @@ -168,4 +168,6 @@ 34px 20px 40px + -1 + 0px \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/values-xhdpi/styles.xml b/modules/mogo-module-extensions/src/main/res/values-xhdpi/styles.xml new file mode 100644 index 0000000000..b92fcf7d00 --- /dev/null +++ b/modules/mogo-module-extensions/src/main/res/values-xhdpi/styles.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/values/dimens.xml b/modules/mogo-module-extensions/src/main/res/values/dimens.xml index c56cb75bbb..4965ed00e3 100644 --- a/modules/mogo-module-extensions/src/main/res/values/dimens.xml +++ b/modules/mogo-module-extensions/src/main/res/values/dimens.xml @@ -111,7 +111,7 @@ 9px 18px 18px - -1px + -1 30px 23px @@ -178,4 +178,7 @@ 11px 11px 10px + + -1 + 0px \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/values/styles.xml b/modules/mogo-module-extensions/src/main/res/values/styles.xml new file mode 100644 index 0000000000..b92fcf7d00 --- /dev/null +++ b/modules/mogo-module-extensions/src/main/res/values/styles.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/modules/mogo-module-main/src/main/res/values-mdpi/dimens.xml b/modules/mogo-module-main/src/main/res/values-mdpi/dimens.xml index 707ac832c0..99b72ae3db 100644 --- a/modules/mogo-module-main/src/main/res/values-mdpi/dimens.xml +++ b/modules/mogo-module-main/src/main/res/values-mdpi/dimens.xml @@ -27,5 +27,8 @@ 658px 8px 2px + 2px + 1920px + 0px \ No newline at end of file diff --git a/modules/mogo-module-main/src/main/res/values-xhdpi-1920x1000/dimens.xml b/modules/mogo-module-main/src/main/res/values-xhdpi-1920x1000/dimens.xml index 34395c22d7..a65f5d7496 100644 --- a/modules/mogo-module-main/src/main/res/values-xhdpi-1920x1000/dimens.xml +++ b/modules/mogo-module-main/src/main/res/values-xhdpi-1920x1000/dimens.xml @@ -27,5 +27,8 @@ 1263px 20px 20px + 20px + 1920px + 0px \ No newline at end of file diff --git a/modules/mogo-module-main/src/main/res/values/dimens.xml b/modules/mogo-module-main/src/main/res/values/dimens.xml index 86cd80d7b8..1daa078052 100644 --- a/modules/mogo-module-main/src/main/res/values/dimens.xml +++ b/modules/mogo-module-main/src/main/res/values/dimens.xml @@ -27,5 +27,7 @@ 658px 8px 8px - + 2px + 1920px + 0px \ No newline at end of file diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/entrance/IMogoEntranceButtonController.java b/services/mogo-service-api/src/main/java/com/mogo/service/entrance/IMogoEntranceButtonController.java index e57e039459..637ea09cfb 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/entrance/IMogoEntranceButtonController.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/entrance/IMogoEntranceButtonController.java @@ -41,4 +41,16 @@ public interface IMogoEntranceButtonController extends IProvider { * @param view 待移除view */ void removeBottomLayerView(View view); + + /** + * 添加左下角功能View,按顺序添加到最底端 + * @param view 待添加view + */ + void addLeftFeatureView(View view); + + /** + * 移除左下角功能按钮 + * @param view 待移除view + */ + void removeLeftFeatureView(View view); }