java - Android Fragment 可以覆盖 PhoneGap Activity 吗?

标签 java android cordova

下图应代表一个标记为蓝色的 PhoneGap/Cordova 应用程序。 红色区域应该是一个 Android Fragment。

enter image description here

Android Fragment 是否可以覆盖 PhoneGap Activity?

编辑:覆盖的 Android Fragment 应该执行图像处理等任务。 我必须如何编写与 Fragment 通信的 PhoneGap 插件?

最佳答案

我这样做的方法是编写一个插件来显示没有边框、背景阴影等的自定义对话框

我的 execute() 方法如下所示:

@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
        if (resources == null)
            resources = cordova.getActivity().getApplication().getResources();
        if (package_name == null)
            package_name = cordova.getActivity().getApplication().getPackageName();
        if (inflator == null) {
            inflator = cordova.getActivity().getLayoutInflater();
        }

        if (action.equals("show")) {
            this.show(args, callbackContext);
            return true;
        }

        return false;  // Returning false results in a "MethodNotFound" error.
}

show() 方法包含如下内容:

[...]
    Runnable runnable = new Runnable() {
        public void run() {
            pinpad = new Dialog(cordova.getActivity());
            pinpad.requestWindowFeature(Window.FEATURE_NO_TITLE);
            Window window = pinpad.getWindow();
            window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
            window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
            WindowManager.LayoutParams wlp = window.getAttributes();
            wlp.gravity = Gravity.BOTTOM;
            window.setAttributes(wlp);

            pinpad.setCancelable(false);
            pinpad.setContentView(view);
            pinpad.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, (int) height);
            pinpad.show();
        }
    };
    this.cordova.getActivity().runOnUiThread(runnable);
[...]

如果您的窗口(红色部分)必须放置在某个特定位置(不是在屏幕的中心或底部),那么您必须将坐标从 javascript 传递到 native 插件。

关于java - Android Fragment 可以覆盖 PhoneGap Activity 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24035756/

相关文章:

android - 在 FCM 中添加 collapse_key

javascript - 当 .src ='' 时,Phonegap 平板电脑无法清除图像

jquery - 在 Jquery Mobile 或 PhoneGap 中禁用自动旋转

ios - ionic 2 导入 ionic 插件键盘不工作

java - 从 Anypoint studio 创建新流程

java - Servlet 的参数传递问题

android - 将 fragment 放入另一个包含选项卡的 fragment 中?

android - 如何以编程方式设置通知音量?

java - 与原始数据类型范围相关的问题

java - 如何让android应用程序优先使用指示灯