반응형
webView를 사용 중인데 앱이 시작되고 url을 로딩하는데까지 상당한 시간이 소요된다.
성질 급한 한국인은 이런거 절대 못참음..
하지만 프로그래스바와 함께라면...?
일단 화면에 뭐라도 돌아가니깐 기다리게 된다..
바로 코드로 보자
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".view.MainActivity">
<ProgressBar
android:id="@+id/progressBar"
style="?progressBarStyle"
android:layout_width="50dp"
android:layout_height="50dp"
android:elevation="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<WebView
android:id="@+id/webView"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
/>
</androidx.constraintlayout.widget.ConstraintLayout>
여기서 중요한건
android:elevation="8dp"
이다. 분명 프로그래스 바를 설정했는데 자꾸 안보여서 보니깐 웹뷰 뒤에 프로그래스 바가 있었다.. ㅡ,.ㅡ;;
elevation 값을 설정하니 웹뷰 위로 예쁘게 나오는 모습
style 값은 안드로이드에서 지원해주는 것 같다. 저 스타일은 무난한 동글뱅이 스타일이다.
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
private lateinit var webView: WebView
private lateinit var progressBar: ProgressBar
override fun onCreate(saveInstanceState : Bundle?) {
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
webView = binding.webView
progressBar = binding.progressBar
initWebView()
webView.loadUrl(Constants.LOAD_URL)
}
private fun initWebView() {
ebView.webViewClient = object : WebViewClient() {
override fun onPageStarted(
view: WebView?,
url: String?,
favicon: Bitmap?
) {
progressBar.visibility = View.VISIBLE // 로딩 시작 시 ProgressBar 보이기
}
override fun onPageFinished(view: WebView?, url: String?) {
super.onPageFinished(view, url)
progressBar.visibility = View.GONE // 로딩 완료 시 ProgressBar 숨기기
}
}
}
이렇게 코드를 짜면 초간단 progressbar가 완성된다.
반응형
'Android' 카테고리의 다른 글
Android Webview에서 Json가져오고 사용하기(feat.Gson) (3) | 2024.09.03 |
---|---|
[Android] Printer 연동 (0) | 2024.08.05 |
[Android] AES-256로 개인정보 암호화 및 복호화 하기 feat.Kotlin (0) | 2024.07.31 |
Android 권한 받고 유저 핸드폰 번호 가져오기(feat. Kotlin) (0) | 2024.07.29 |
Android studio 버전 다른거 여러개 깔기 (1) | 2024.07.26 |