Próbuję zastosować poszerzyć funkcję zwijania na Webview podstawie jego wysokości partnerskiej, ale zawsze jestem coraz błędną wartość Oto mój kodPierwsze WebView wysokość jego zawartość raz załadowany 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;
}
}
, a następnie w fragment próbowałem uzyskać wysokość treści
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;
ale moim problemem jest to, że zawsze jestem coraz błędnego Wynik Dzięki
można wyjaśnić dlaczego ContentListener musi być w ramach działającego? Czy nie możemy uzyskać dokładnej wartości, jeśli po prostu ustawimy słuchacza bez niej? – Teffi