Look at the pictures of the old routines:
This is a webpage displayed by loading HTML source code through webview: the loading method is as follows:
webview.loadDataWithBaseURL(null, htmlData, "text/html", "utf-8", null);
There are two ways to set the scroll bar not to be displayed:
The first type: configure scrollbars to none in xml
<WebView
android:id="@+id/wv_read_msg_content"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_marginBottom="10dp"
android:scrollbars="none" />
The second: Java code settings
//设置WebView滚动条不显示
//水平不显示
wvReadMsgContent.setHorizontalScrollBarEnabled(false);
//垂直不显示
wvReadMsgContent.setVerticalScrollBarEnabled(false);
Method of setting webview adaptive:
//设置网页自适应
wvReadMsgContent.getSettings().setUseWideViewPort(true);
wvReadMsgContent.getSettings().setLoadWithOverviewMode(true);
Set webview to support gesture zoom function
// 设置可以支持缩放
wvReadMsgContent.getSettings().setSupportZoom(true);
// 设置出现缩放工具
wvReadMsgContent.getSettings().setBuiltInZoomControls(true);
Look at the effect after setting:
The WebView has been adaptive, and the WebView scroll bar is also hidden and the HTML data is also loaded
If it looks complicated, I will post the complete code: xml (please complete the missing resource files)
activity_read_message.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="3.5" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="32dp"
android:layout_marginRight="32dp"
android:background="@drawable/normal_login_bt_bg"
android:orientation="vertical">
<ImageView
android:id="@+id/iv_close_read_msg"
android:layout_width="15dp"
android:layout_height="15dp"
android:layout_gravity="right"
android:layout_marginTop="15dp"
android:layout_marginRight="15dp"
android:src="@drawable/mch_close1" />
<TextView
android:layout_width="match_parent"
android:layout_height="25dp"
android:gravity="center"
android:text="消息"
android:textColor="@color/login_text"
android:textSize="18sp" />
<View
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="5dp"
android:background="@color/black_text" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@null"
android:orientation="vertical">
<TextView
android:id="@+id/tv_read_msg_title"
android:layout_width="match_parent"
android:layout_height="22dp"
android:layout_marginLeft="15dp"
android:layout_marginTop="5dp"
android:layout_marginRight="15dp"
android:gravity="center"
android:textColor="@color/login_text"
android:textSize="15sp"
tools:text="我是消息标题呀我是消息标题" />
<TextView
android:id="@+id/tv_read_msg_time"
android:layout_width="match_parent"
android:layout_height="15dp"
android:layout_marginLeft="15dp"
android:layout_marginTop="5dp"
android:layout_marginRight="15dp"
android:layout_marginBottom="10dp"
android:gravity="center"
android:textColor="@color/login_text"
android:textSize="11sp"
tools:text="2019-05-03 10:59:51" />
<WebView
android:id="@+id/wv_read_msg_content"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_marginBottom="10dp"
android:scrollbars="none" />
</LinearLayout>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="4" />
</LinearLayout>
Look at the ReadMessageActivity.java file again
package com.mchsdk.paysdk.activity;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.ImageView;
import android.widget.TextView;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.RequestParams;
import com.mchsdk.paysdk.R;
import com.mchsdk.paysdk.bean.DeleteMsgBean;
import com.mchsdk.paysdk.bean.GotMsgByIdParam;
import com.mchsdk.paysdk.bean.MsgContentBean;
import com.mchsdk.paysdk.callback.YhshNetRequestCallBack;
import com.mchsdk.paysdk.utils.MCLog;
import com.mchsdk.paysdk.utils.TextUtils;
import com.mchsdk.paysdk.utils.YhshNetUtils;
import com.mchsdk.paysdk.utils.YhshUtils;
import com.xigu.gson.Gson;
import org.apache.http.entity.StringEntity;
import java.io.UnsupportedEncodingException;
/**
* 消息阅读页面
*
* @author xiayiye5
* 2020年6月5日16:49:56
*/
public class ReadMessageActivity extends MCBaseActivity implements View.OnClickListener {
private TextView tvReadMsgTitle;
private TextView tvReadMsgTime;
private WebView wvReadMsgContent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN
| WindowManager.LayoutParams.SOFT_INPUT_ADJUST_UNSPECIFIED);
setContentView(R.layout.activity_read_message);
initView();
initData();
}
private void initView() {
ImageView ivCloseReadMsg = findViewById(R.id.iv_close_read_msg);
tvReadMsgTitle = findViewById(R.id.tv_read_msg_title);
tvReadMsgTime = findViewById(R.id.tv_read_msg_time);
wvReadMsgContent = findViewById(R.id.wv_read_msg_content);
//设置网页自适应
wvReadMsgContent.getSettings().setUseWideViewPort(true);
wvReadMsgContent.getSettings().setLoadWithOverviewMode(true);
// 设置可以支持缩放
wvReadMsgContent.getSettings().setSupportZoom(true);
// 设置出现缩放工具
wvReadMsgContent.getSettings().setBuiltInZoomControls(true);
ivCloseReadMsg.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.iv_close_read_msg) {
finish();
}
}
/**
* 1.调用消息读取成功,2.调用获取消息内容
*/
private void initData() {
int msgId = getIntent().getIntExtra("msgId", 0);
RequestParams params = new RequestParams();
GotMsgByIdParam gotMsgByIdParam = new GotMsgByIdParam();
GotMsgByIdParam.BodyBean bodyBean = new GotMsgByIdParam.BodyBean();
bodyBean.setId(msgId);
gotMsgByIdParam.setBody(bodyBean);
GotMsgByIdParam.HeaderBean headerBean = new GotMsgByIdParam.HeaderBean();
headerBean.setToken(YhshUtils.getInstance().getLoginToken(this));
gotMsgByIdParam.setHeader(headerBean);
String json = new Gson().toJson(gotMsgByIdParam);
MCLog.e("消息内容的参数", json);
try {
params.setBodyEntity(new StringEntity(json, "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
params.setContentType("application/json");
YhshNetUtils.getInstance().requestHttpPost("https://xggapi.gfan.com/gfanmsg/read", params, new MessageContentCallBack(1));
YhshNetUtils.getInstance().requestHttpPost("https://xggapi.gfan.com/gfanmsg/info", params, new MessageContentCallBack(2));
}
class MessageContentCallBack implements YhshNetRequestCallBack {
private int requestType;
MessageContentCallBack(int requestType) {
this.requestType = requestType;
}
@Override
public void onSuccess(String responseInfo) {
if (requestType == 1) {
MCLog.e("打印已读消息数据", responseInfo + "");
DeleteMsgBean deleteMsgBean = new Gson().fromJson(responseInfo, DeleteMsgBean.class);
int result = deleteMsgBean.getResult();
if (result == 1) {
//已阅读
MCLog.e("阅读", "阅读成功!");
}
} else {
MsgContentBean msgContentBean = new Gson().fromJson(responseInfo, MsgContentBean.class);
MCLog.e("打印消息详情数据", responseInfo);
//设置消息内容
updateMsgContentData(msgContentBean);
}
}
@Override
public void onFail(HttpException e, String s) {
String localizedMessage = e.getLocalizedMessage();
MCLog.e("打印异常", localizedMessage + ":" + s);
}
}
private void updateMsgContentData(MsgContentBean msgContentBean) {
MsgContentBean.ResultBean resultContent = msgContentBean.getResult();
if (resultContent != null) {
String htmlData = resultContent.getMessage_text();
tvReadMsgTitle.setText(resultContent.getMessage_title());
tvReadMsgTime.setText(resultContent.getSend_time());
if (!TextUtils.isEmpty(htmlData)) {
wvReadMsgContent.loadDataWithBaseURL(null, htmlData, "text/html", "utf-8", null);
//数据加载后隐藏缩放按钮
wvReadMsgContent.getSettings().setDisplayZoomControls(false);
}
}
}
}