I know ActivityGroup
已弃用。
但我正在尝试结合用户界面NativeActivty
带有一些 Java/Android APIView
s.
我正在尝试制作一个混合用户界面,其中屏幕的一部分来自NativeActivity
.
我用这个例子 https://stackoverflow.com/a/3265352/703851并尝试过ActivityGroup
一些简单的活动。
这与任何完美配合Activity
(即使我使用 VideoView 播放视频)。
但是当我尝试加载时NativeActivity
它不工作。 (我试过茶壶演示 https://android.googlesource.com/platform/development/+/1b8ffe3331233ba4902d94670cd257e7df9ee09d/ndk/platforms/android-17/samples/Teapot来自 NDK 样本)。
我所说的“不工作”是指window.getDecorView()
从本机活动中,它始终返回透明视图,而不是实际内容视图。
我该怎么做呢?请帮我。
这次我找到了解决方法,并且效果很好。但仅适用于 ndk 演示。
在您的 ActivityGroup 子类的 onCreate 方法中,编写以下代码。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LocalActivityManager lam = getLocalActivityManager();
Intent intent = new Intent();
intent.setClass(this, TeapotNativeActivity.class);
Window window = lam.startActivity("xxx", intent);
// reflect call "willYouTakeTheSurface"
NativeActivity callback = JavaCalls.callMethod(window.getDecorView(), "willYouTakeTheSurface");
if (callback != null) {
window.takeSurface(null);
getWindow().takeSurface(callback);
getWindow().takeInputQueue(callback);
}
setContentView(window.getDecorView());
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)