2010-12-30 30 views
5

Tôi có một webview trong một scrollview, khi tải hoạt động, nó buộc scrollview của tôi ở phía dưới (nơi webview là) một khi webview kết thúc "loadData". Làm cách nào để ngăn điều này xảy ra? Tôi đã thử điều này, nhưng nó nhảy màn hình lên xuống, mà tôi không muốn:webview đang buộc scrollview của tôi vào phía dưới

ScrollView scroll = (ScrollView)findViewById(R.id.detailsScroll); 
scroll.post(new Runnable() 
{ 
    @Override 
    public void run() 
    { 
     ScrollView scroll = (ScrollView)findViewById(R.id.detailsScroll); 
     scroll.fullScroll(ScrollView.FOCUS_UP); 
    } 
}); 
+2

Bạn không nên đặt một webview trong một scrollview. Các chế độ xem có thể cuộn trong các chế độ xem có thể cuộn không hoạt động. – Falmarri

+0

ok, vậy tôi nên làm như thế nào nếu nội dung của Hoạt động lớn hơn màn hình? – steve

+0

... và đây không phải là điều mà admob đang làm? Có vẻ như webview đang tập trung một khi nội dung được tải, điều này khiến cho scrollview nhảy lên. – steve

Trả lời

5

Tạo một tùy chỉnh scrollview với phương pháp này:

@Override 
public void requestChildFocus(View child, View focused) { 
    if (child instanceof WebView) return; 
} 
10

Câu trả lời của fhucho là OK để dừng xem web từ cuộn xuống dưới. Nhưng bạn sẽ mất tất cả khả năng truy cập bằng bi xoay, v.v. Vì vậy, tôi đã tìm thấy một cải tiến:

public class MyScrollView extends ScrollView { 

    @Override 
    public void requestChildFocus(View child, View focused) { 
     if (focused instanceof WebView) 
      return; 
    super.requestChildFocus(child, focused); 
    } 
} 

Hy vọng điều đó sẽ hữu ích!

+0

Thật không may là ngăn bàn phím hiển thị khi nhấp vào các trường nhập trong chế độ xem web. – spatialist

2

Đối với các vấn đề trọng tâm liên quan, tôi thấy điều này làm việc tốt hơn, bổ sung thêm những để WebView của bạn trong XML:

android:focusable="false" 
    android:focusableInTouchMode="false" 

Mặc dù cho câu hỏi thực tế yêu cầu, chỉ cần thêm một điểm cho rằng được tập trung theo mặc định, thay vì WebView, nên đã giải quyết vấn đề đó. Tôi nghĩ rằng những người khác như tôi có thể tìm thấy điều này khi cố gắng để đối phó với các vấn đề chung khác với một WebView bên trong một ScrollView lấy trọng tâm. Việc thêm các bên trên vào XML không ngăn các siêu liên kết trong WebView hoạt động.

0

thêm này vào bố cục chính của bạn

android: descendantFocusability = "blocksDescendants"

Các vấn đề liên quan