Xóa rãnh thanh cuộn khỏi ScrollView trong Android


104

Ứng dụng Android của tôi có WebView chính (HTML được tải từ tài nguyên cục bộ) mà tôi muốn sử dụng toàn bộ chiều rộng của màn hình và có thể cuộn (theo chiều dọc). Vì vậy, tôi đã bao bọc WebView trong ScrollView trong XML bố cục của mình, nhưng bất kể tôi làm gì, dường như tôi không thể loại bỏ rãnh thanh cuộn từ phía bên phải của chế độ xem cuộn. Tệ hơn nữa, tôi dường như không thể thay đổi màu nền của rãnh thanh cuộn.

Bản nhạc chiếm khoảng 10dp hoặc lâu hơn, điều này đang tạo ra các vấn đề cho HTML trong WebView. Tôi muốn thanh cuộn xuất hiện ở trên cùng của chế độ xem web (kiểu iPhone, nếu bạn hiểu ý tôi). Bây giờ, bạn có thể nói "tại sao bạn không thay đổi HTML của mình mỏng hơn 10px?", Đó là giải pháp dự phòng của tôi, nhưng tôi không muốn phải làm vậy.

Đây là đoạn mã XML bố cục có liên quan, bạn sẽ thấy tôi đã thử mọi thuộc tính android: etc mà tôi có thể tìm thấy:

<ScrollView 
  android:id="@+id/deal_web_view_holder"
  android:layout_below="@id/clock_bar_holder"
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent"
  android:fillViewport="false"
  android:fadingEdge="none"
  android:background="#02a7e9"
  android:scrollbars="none"
  android:scrollbarSize="0dp"
  android:paddingRight="0dp"
  android:scrollbarAlwaysDrawVerticalTrack="false"
  android:scrollbarStyle="insideOverlay"
  android:scrollbarTrackVertical="@drawable/scrollbar_track_vertical" >
    <WebView
       android:id="@+id/deal_web_view"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"/>  
</ScrollView>

Tôi đang nhắm mục tiêu nền tảng 2.1 / API lvl 7, thực sự chỉ xử lý các màn hình kích thước bình thường, mdp, hdp và xhdp.

Câu trả lời:


506

Để xóa thanh cuộn khỏi một dạng xem (và lớp con của nó) qua xml:

android:scrollbars="none"

http://developer.android.com/reference/android/view/View.html#attr_android:scrollbars


1
Đây không phải là điều mà người đăng câu hỏi đã hỏi. Ông nói rằng ông sẽlike the scrollbar to appear on top of the web view content
Sudhanshu

11
Nó hoạt động nhưng bạn sẽ không thể di chuyển màn hình khi bàn phím được mở
DeltaCap019

4
android: scrollbarThumbVertical = "@ null" Thêm này trên scrollview nếu bạn muốn màn hình để cuộn khi bàn phím được mở :)
Biswas Khayargoli

29

hãy thử đây là hoạt động của bạn trên Tạo:

ScrollView sView = (ScrollView)findViewById(R.id.deal_web_view_holder);
// Hide the Scollbar
sView.setVerticalScrollBarEnabled(false);
sView.setHorizontalScrollBarEnabled(false);

http://developer.android.com/reference/android/view/View.html#setVerticalScrollBarEnabled%28boolean%29


Cảm ơn ... Tôi đã thử cái đó rồi (trong mã và trong layout.xml), nhưng cách tiếp cận này vẫn can thiệp vào kích thước ngang của WebView trong ScrollView. Giải pháp tốt nhất là giải pháp được cung cấp ở trên, chỉ cần loại bỏ ScrollView hoàn toàn và cho phép WebView tự xử lý cuộn. Vấn đề gốc rễ là tôi không hiểu về cách sử dụng ScrollView khi nào là thích hợp; tức là mọi chế độ xem trong Android đều có thể xử lý việc cuộn.
Mick Byrne

18

Tôi hơi bối rối tại sao bạn lại đặt a WebViewvào a ScrollViewngay từ đầu. A WebViewcó hệ thống cuộn tích hợp riêng.

Về câu hỏi thực tế của bạn, nếu bạn muốn câu hỏi Scrollbarhiển thị ở trên cùng, bạn có thể sử dụng

view.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY) or   
android:scrollbarStyle="insideOverlay"

Vâng, bạn nói đúng về việc không cần ScrollView ngay từ đầu, tôi đã tự tìm hiểu điều đó trước khi kiểm tra lại tại đây. 'SetScrollBarStyle' trên chế độ xem web đã hoạt động tốt, cảm ơn!
Mick Byrne

Không chỉ là không cần thiết, ScrollView không thể chứa các dạng xem có thể cuộn được, vì vậy WebView của bạn dù sao cũng sẽ không cuộn
A Person

3
Không làm việc. Câu trả lời chính xác là câu trả lời của Garzahd.
Misagh Emamverdi

3
câu trả lời chính xác là bên dưới, android: scrollbars = "none"
Araib karim

5

Đã giải quyết vấn đề của tôi bằng cách thêm cái này vào ListView:

android:scrollbars="none"

4

Các giải pháp này Không thành công trong trường hợp của tôi với Bố cục Tương đối và Nếu KeyBoard đang Mở android:scrollbars="none"android:scrollbarStyle="insideOverlay"cũng không hoạt động.

thanh công cụ đã biến mất, nút hoàn tất của tôi không còn nữa.

không làm việc

Cái này đang làm việc cho tôi

myScrollView.setVerticalScrollBarEnabled(false);

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.