Android 如何动态获取/设置WebView的高度?

Android 如何动态获取/设置WebView的高度?,android,android-webview,Android,Android Webview,我在应用程序中使用WebView显示html内容,并在其下方显示RecyclerView。我想根据内容展开和折叠WebView。我想要一个“更多”按钮来展开和折叠WebView 问题: 我通过使用TreeViewObserver获得WebView的高度,但它始终为我提供480高度 ViewTreeObserver viewTreeObserver = mMessageWebView.getViewTreeObserver(); viewTreeObserver.addOnPreDrawLis

我在应用程序中使用
WebView
显示html内容,并在其下方显示
RecyclerView
。我想根据内容展开和折叠
WebView
。我想要一个“更多”按钮来展开和折叠
WebView

问题:

我通过使用
TreeViewObserver
获得
WebView
的高度,但它始终为我提供480高度

 ViewTreeObserver viewTreeObserver = mMessageWebView.getViewTreeObserver();
 viewTreeObserver.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
        @Override
        public boolean onPreDraw() {
           // int height = mMessageWebView.getMeasuredHeight();
             mMessageWebView.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
            int height = mMessageWebView.getMeasuredHeight();
            mWebViewHeight = height;

            if (height > 300) {

                mMoreTextView.setVisibility(View.VISIBLE);
                Toast.makeText(getActivity(), "height:" + height, Toast.LENGTH_SHORT).show();
                mMessageWebView.getViewTreeObserver().removeOnPreDrawListener(this);
            }

            return false;
        }
    });
点击更多内容

@OnClick(R.id.web_view_more_text_view)
void onMoreClicked(View view) {
    getActivity().runOnUiThread(new Runnable() {
        @Override
        public void run() {
            Toast.makeText(getActivity(), " more height:" + mWebViewHeight, Toast.LENGTH_SHORT).show();
            // webView.setLayoutParams(new LinearLayout.LayoutParams(getResources().getDisplayMetrics().widthPixels, (int) (height * getResources().getDisplayMetrics().density)));
            mMessageWebView.setLayoutParams(new RelativeLayout.LayoutParams(getResources().getDisplayMetrics().widthPixels, RelativeLayout.LayoutParams.WRAP_CONTENT));
        }
    });
}
对于展开
WebView
我可以将高度设置为
WRAP\u CONTENT
,但是如何获得正确的高度来折叠它呢?请帮忙


谢谢。

尝试使用layout婴儿车进行设置…………我使用了
LayoutParams
来设置高度及其工作方式,但我没有获得正确的
WebView高度。请使用此选项获取高度。谢谢,但这只是将高度从px转换为dp,并从dp转换为px。如果我每次都获得480高度,那么这对我有什么帮助?尝试使用layout Prams进行设置………我使用了
LayoutParams
来设置高度及其工作方式,但我没有获得正确的
WebView
高度。使用此方法获得高度。谢谢,但这只是将高度从px转换为dp,从dp转换为px。如果我每次都能达到480的高度,这对我有什么帮助?