Repository navigation
The default size cannot be set when creating a Webview directly. #30
Description
Activity
我遇到了同样的问题,在创建Webview实例并且执行
setSize()的时候会发生动画过渡不太流畅的窗口尺寸变化。后来我发现作者的主页 fork 了一个仓库 https://github.com/e3ndr/webview-nightly-build-fork
这个项目的script文件夹中有脚本可以生成dll文件,可以通过修改webview.h来生成目标webview.dll和WebView2Loader.dll在 https://github.com/e3ndr/webview-nightly-build-fork/blob/build-latest-commit/webview.h 这个文件中有一处代码为:
constexpr const int initial_width = 640; constexpr const int initial_height = 480; set_size(initial_width, initial_height, WEBVIEW_HINT_NONE);
刚好经过我测试640x480就是webview_java这个项目创建窗口时默认的尺寸,但是由于我对C/C++语言不太熟悉,能力有限。如果能够办法将下面这部分代码中的initial_width和initial_height通过Java程序调用webview的时候传进来,应该是可以避免你说的这个问题的。set_size(initial_width, initial_height, WEBVIEW_HINT_NONE);@isinvon 感谢,我略微有些了解,我抽空看下
@isinvon 你好,我这边已做适配,在我电脑上测试已经可以。java项目中暂时只提交了win下x86_64的类库,后面再补全其他的。
webview: https://github.com/HKMV/webview-nightly-build-fork
webview_java: https://github.com/HKMV/webview_javaReacted by sinvon@HKMV 测试完美,真是太感谢您了!!!!
Reacted by SerenityCan confirm, NotJustAnna/webview fixes behavior highlighted by this issue and issue #34.
2025-04-16.08-51-03.mp4
Can confirm, NotJustAnna/webview fixes behavior highlighted by this issue and issue #34.
I have fixed this problem above, you can take it as a reference, my repair is as follows:
webview: https://github.com/HKMV/webview-nightly-build-fork
webview_java: https://github.com/HKMV/webview_java https://github.com/user-attachments/assets/8bd08163-d21f-4ea1-a262-560c3852800cCan confirm, NotJustAnna/webview fixes behavior highlighted by this issue and issue #34.
I have fixed this problem above, you can take it as a reference, my repair is as follows: webview: https://github.com/HKMV/webview-nightly-build-fork webview_java: https://github.com/HKMV/webview_java https://github.com/user-attachments/assets/8bd08163-d21f-4ea1-a262-560c3852800c
The fix was made mostly by being on the main repository, as SteffenL highlighted here: webview/webview#1296 (comment)
I believe the following PRs were meant to fix the issue described by webview/webview_java#30:
- Fix default size glitch and refactor webkitgtk #1269
- Fix window rendering glitch and refactor win32 edge #1270
- Fix no-show window issue and refactor cocoa webkit #1271
These PRs introduced
dispatch_size_default()less than a month ago.The fix on my fork was just removing the
setSize()call made by webview_java and updating binaries to run on the latest commit.
Use
Webview wv = new Webview(true, 800, 600);create Webview;You will see that the window changes from small to large, instead of being 800x600 when it appears.
Looking at the source code, I found that
Webview(true, 800, 600)only calls thesetSizemethod internally, and does not set the initial size.How do I set the default size during initialization?
OS:Windows11
JDK: OpenJDK21