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的高度,这对我有什么帮助?