ภาพรวม
บทความนี้สาธิตการเปิดใช้งาน Scroll Bar แนวตั้งใน WebView ผ่าน setVerticalScrollBarEnabled(true) และตั้งค่า Default Text Encoding เป็น UTF-8
โค้ดการตั้งค่า WebView
WebView webView = findViewById(R.id.web_view);
webView.setVerticalScrollBarEnabled(true); // เปิด Scroll Bar แนวตั้ง
webView.getSettings().setDefaultTextEncodingName("utf-8");
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("https://touch.facebook.com/");
การตั้งค่า Scroll Bar เพิ่มเติม
// สไตล์ Scroll Bar
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); // หรือ OUTSIDE_OVERLAY, INSIDE_INSET
// สี Scroll Bar (API 21+)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
webView.setVerticalScrollbarThumbDrawable(
ContextCompat.getDrawable(this, R.drawable.custom_scrollbar_thumb)
);
webView.setVerticalScrollbarTrackDrawable(
ContextCompat.getDrawable(this, R.drawable.custom_scrollbar_track)
);
}
// ปิด Scroll Bar แนวนอน (ถ้าไม่ต้องการ)
webView.setHorizontalScrollBarEnabled(false);
WebViewClient และ WebChromeClient
โค้ดตัวอย่างรวม ProgressDialog สำหรับแสดงสถานะโหลดหน้าเว็บ
Manifest
<uses-permission android:name="android.permission.INTERNET"/>
ข้อสังเกต
- Scroll Bar จะแสดงอัตโนมัติเมื่อเนื้อหายาวกว่าหน้าจอ
- UTF-8 Encoding ป้องกันปัญหาภาษาไทย/อักษรพิเศษแสดงผิด
- Facebook Mobile (touch.facebook.com) ใช้เป็นตัวอย่างเว็บที่มีเนื้อหายาว