J'ai WebView que je l'ai ajouté à un groupe de vue:Android: View.measure (int, int) veut toujours être (0,0)
webView = new WebView(context);
addView(webView, ViewGroup.LayoutParams.WRAP_CONTENT);
Ce vit dans le constructeur de mon viewgroup.
ensuite sur la mise en page, je veux le faire:
webView.measure(View.MeasureSpec.makeMeasureSpec(getWidth(),View.MeasureSpec.EXACTLY),
View.MeasureSpec.makeMeasureSpec(3000, View.MeasureSpec.AT_MOST));
Malheureusement, à moins que je précise EXACTLY
, le webView.getMeasuredHeight() retourne toujours 0
. Ce que je veux faire, c'est déterminer la taille de la webview pour que je puisse y poser d'autres éléments. J'ai précisé que je veux que le webview soit assez grand pour englober son contenu et j'ai fourni beaucoup d'espace. Alors pourquoi est-ce encore 0?
Merci
Update 1
Par WebView temps se mesure() demande, il doit savoir la quantité de données qu'il a, non?
webView = new WebView(context);
webView.loadData("<html></html>","text/html", "utf-8");
addView(webView, new ViewGroup.LayoutParams(getWidth(), 1000));
Oh, wow. Vous avez tout à fait raison. J'ai mis à jour le code ci-dessus, sans différence. – EightyEight
Je ne pense pas loadData() est synchrone. Vous devez attendre que WebView ait fini d'analyser les données et de créer le DOM. Il doit y avoir un auditeur pour cela. –
Pour les futurs googleurs; WebView distribue un événement à un objet PictureListener lorsqu'il a fini de se disposer. – EightyEight