我在滚动视图中有一个webview,当Activity加载时,一旦webview完成“loadData”,它就会强制我的滚动视图到底部(webview所在的位置)。 我如何防止这种情况发生? 我试过这个,但它上下跳动屏幕,我不想要:
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);
}
});
答案 0 :(得分:10)
chucho的答案可以阻止webview从滚动到底部。但是你会失去轨迹球等所有的可访问性。所以我找到了一个改进:
public class MyScrollView extends ScrollView {
@Override
public void requestChildFocus(View child, View focused) {
if (focused instanceof WebView )
return;
super.requestChildFocus(child, focused);
}
}
希望它有所帮助!
答案 1 :(得分:5)
使用此方法创建自定义ScrollView:
@Override
public void requestChildFocus(View child, View focused) {
if (child instanceof WebView) return;
}
答案 2 :(得分:2)
对于与焦点相关的问题,我发现这样做效果更好,将它们添加到XML中的WebView中:
android:focusable="false"
android:focusableInTouchMode="false"
虽然对于实际问题,只是添加另一个默认获得焦点的视图,而不是WebView,应该已经解决了这个问题。我认为像我这样的其他人在尝试使用ScrollView中的WebView处理其他常见问题时可能会发现这一点。将上述内容添加到XML不会阻止WebView中的超链接工作。
答案 3 :(得分:1)
将此添加到您的主要布局
<强>机器人:descendantFocusability =&#34; blocksDescendants&#34; 强>