이런식으로 xml에 webview하나만 배치하였다. 화면안에 여백없이 html 꽉차서 나오게 하도록 할 예정이라.
2. assets 폴더 생성 후 html 파일 업로드
(1) 우선 android -> project로 변경
(2) main에서 new - Folder - assets 선택 하여 assets 폴더 생성
(3) assets 폴더에 html 파일 복붙하기 나 같은 경우엔 html 파일이 2개가 필요해서 assets 안에 하위폴더를 2개로 나누어서 복붙하였다. 이때 원래 assets의 폴더랑 구조, 폴더명, 파일명 등등 다 동일하여야함. 이런식으로 넣어준다
3. 메인코드 작성
loadhtml() 메서드를 생성하여 webview 컴포넌트를 바인딩하고 아래와 같이 코드 적용하였다. 알맞은 assets 파일 경로를 loadUrl에 넣어주어야한다.
package com.psg.androidspcs.ui.menu06
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.webkit.WebChromeClient
import android.webkit.WebView
import android.webkit.WebViewClient
import com.psg.androidspcs.R
import com.psg.androidspcs.databinding.FragmentGuidelineBinding
class GuidelineFragment : Fragment() {
private var _binding : FragmentGuidelineBinding? = null
private val binding get() = _binding!!
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
// Inflate the layout for this fragment
_binding = FragmentGuidelineBinding.inflate(inflater, container, false)
val root : View = binding.root
return root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
loadHtml()
}
private fun loadHtml() {
val webView = binding.webView
// html 문서 호출
webView.webViewClient = WebViewClient()
webView.settings.javaScriptEnabled = true
webView.webChromeClient = WebChromeClient()
webView.loadUrl("file:///android_asset/guide_line/guideline_v1.3.html")
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
}