我读到这个:How to prevent a scrollview from scrolling to a webview after data is loaded?
我也读过这篇文章:webview is forcing my scrollview to the bottom
我试图实现一个自定义的scrollvIEw,它覆盖了requestChildFocus方法.
我在我的xml文件中添加了androID:descendantFocusability =“blocksDescendants”.
我添加了androID:focusableIntouchMode =“true”,但仍然没有好处,没有变化.它仍然迫使永远滚动.
这是我的自定义滚动视图:
package com.example.john.cosmicbrowser;import androID.content.Context;import androID.util.AttributeSet;import androID.vIEw.VIEw;import androID.webkit.WebVIEw;import androID.Widget.ScrollVIEw;public class MyScrollVIEw extends ScrollVIEw{ public MyScrollVIEw(Context context) { super(context); } public MyScrollVIEw(Context context,AttributeSet attributeSet) { super(context,attributeSet); } public MyScrollVIEw(Context context,AttributeSet attributeSet,int defStyle) { super(context,attributeSet,defStyle); } @OverrIDe public voID requestChildFocus(VIEw child,VIEw focused) { if (focused instanceof WebVIEw) return; super.requestChildFocus(child,focused); }}
这是我的xml文件:
<?xml version="1.0" enCoding="utf-8"?><androID.support.v4.Widget.SwipeRefreshLayout androID:ID="@+ID/swipe" 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" androID:descendantFocusability="blocksDescendants" app:layout_behavior="@string/appbar_scrolling_vIEw_behavior" tools:context=".WebActivity" tools:showIn="@layout/activity_webvIEw" > <com.example.john.cosmicbrowser.MyScrollVIEw xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:focusableIntouchMode="true" androID:descendantFocusability="blocksDescendants" > <relativeLayout androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:descendantFocusability="blocksDescendants" > <WebVIEw androID:ID="@+ID/webVIEw" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:layout_alignParentleft="true" androID:layout_alignParentStart="true" androID:layout_centerVertical="true" androID:padding="0dp"/> <Progressbar androID:ID="@+ID/cosmicProgressbar" androID:layout_wIDth="match_parent" androID:layout_height="4dp" androID:layout_alignParentleft="true" androID:layout_alignParentStart="true" androID:layout_alignParenttop="true" androID:indeterminate="false"/> </relativeLayout> </com.example.john.cosmicbrowser.MyScrollVIEw></androID.support.v4.Widget.SwipeRefreshLayout>
例如,假设您在此WebvIEw上打开了Google.com.页面加载后,令人难以置信的向下滚动到底部,你甚至看不到页面底部的任何信息.我该如何解决这个问题?任何帮助将非常感谢!提前致谢!
顺便说一句,添加androID:descendantFocusability =“blocksDescendants”会导致Google.com打开后无法搜索的问题,您无法在Google的搜索栏中输入任何输入!
解决方法 我遇到了同样的问题.我的解决方案是在加载URL后立即将webvIEw的高度设置为等于其内容:mWebVIEw.setWebVIEwClIEnt(new WebVIEwClIEnt(){ @OverrIDe public voID onPageFinished(WebVIEw vIEw,String url) { super.onPageFinished(vIEw,url); relativeLayout.LayoutParams params = new relativeLayout.LayoutParams(VIEwGroup.LayoutParams.MATCH_PARENT,mWebVIEw.getMeasuredHeight()); params.addRule(relativeLayout.AliGN_PARENT_top,relativeLayout.TRUE); mWebVIEw.setLayoutParams(params); } });
请注意,在我的情况下,relativeLayout是WebVIEw的父级,您应该更改为相应的.
@H_404_49@ 总结以上是内存溢出为你收集整理的android – 如何阻止ScrollView滚动到WebView中当前加载页面的底部全部内容,希望文章能够帮你解决android – 如何阻止ScrollView滚动到WebView中当前加载页面的底部所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)