The method of Android development WebView loading html data to remove the Webview scroll bar

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);
            }
        }
    }
}

 

Guess you like

Origin blog.csdn.net/xiayiye5/article/details/106916886