Sto cercando di applicare ampliare funzione crollo sul Webview Sulla base della sua altezza contenuti ma sto ottenendo sempre un valore errato Ecco il mio codiceOttenere WebView altezza contenuti una volta la sua carica Android
public class MesuredHeightWebView extends WebView {
public MesuredHeightWebView(Context context) {
super(context);
}
public MesuredHeightWebView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MesuredHeightWebView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void invalidate() {
super.invalidate();
if (getContentHeight() > 0) {
// WebView has displayed some content and is scrollable.
if(listener!=null)
listener.updateContentHeight(getContentHeight());
}
}
WebViewContentHeight listener;
public void setChangeContentListener(WebViewContentHeight listener) {
this.listener = listener;
}
}
e poi in il frammento Ho cercato di ottenere l'altezza contenuti
webView.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
if(newProgress==100)
{
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
webView.setChangeContentListener(new WebViewContentHeight() {
@Override
public void updateContentHeight(int height) {
if(height>0 && getActivity()!=null) {
System.out.println("the height2 is" + height + " " + Utils.convertPixelsToDp(height, getActivity()));
final int text_height = height;
ma il mio problema è che sto ottenendo sempre risultato sbagliato Grazie
Può spiegare perché ContentListener deve essere all'interno di una corsa? Non possiamo ottenere un valore preciso se semplicemente impostiamo l'ascoltatore senza di esso? – Teffi