数据加载后如何防止滚动浏览到webview?

所以我有一个迷人的问题。 尽pipe事实上我没有手动或以编程方式滚动我的视图,我的WebView被自动滚动到其中的数据加载后。

viewpager中有一个片段。 当我第一次加载传呼机,它按预期工作,一切都显示。 但是,一旦我“翻页”的数据加载和WebViewpopup到页面的顶部,隐藏其上的意见,这是不可取的。

有谁知道如何防止这种情况发生?

我的布局看起来像这样:

<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/background" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/article_title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:layout_marginBottom="2dp" android:text="Some Title" android:textAppearance="?android:attr/textAppearanceLarge" android:textColor="@color/article_title" android:textStyle="bold" /> <LinearLayout android:id="@+id/LL_Seperator" android:layout_width="fill_parent" android:layout_height="1dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="5dp" android:layout_marginBottom="5dp" android:background="@color/text" android:orientation="horizontal" > </LinearLayout> <WebView android:id="@+id/article_content" android:layout_width="match_parent" android:layout_marginRight="10dp" android:layout_marginLeft="10dp" android:layout_height="wrap_content" /> <TextView android:id="@+id/article_link" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="5dp" android:layout_marginTop="5dp" android:layout_marginRight="10dp" android:layout_marginLeft="10dp" android:text="View Full Article" android:textColor="@color/article_title" android:textStyle="bold" /> </LinearLayout> </ScrollView> 

我也没有把重点放在任何事情上。 默认情况下,它似乎自动滚动到加载后的WebView。 我如何防止这种情况?

您可以简单地将其添加到您的LinearLayout:android:focusableInTouchMode =“true”。 这个对我有用。

  <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:focusableInTouchMode="true" android:orientation="vertical" > 

我有同样的问题,经过几个小时的尝试几个想法,最后为我工作的只是添加descendantFocusability属性的ScrollView的包含LinearLayout,值blockDescendants 。 在你的情况下:

 <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:descendantFocusability="blocksDescendants" > 

从那以后没有问题再次发生:)

你应该创build新的类扩展ScrollView,然后覆盖requestChildFocus:

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

然后在你的xml布局中使用:

 <MyScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/background" > 

这对我行得通。 ScrollView将不会自动滚动到WebView。

在主布局中添加这些行解决了这个问题

 android:descendantFocusability="blocksDescendants" 

喜欢这个:

 <com.ya.test.view.MyScrollView android:layout_width="match_parent" android:layout_height="match_parent" > <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:descendantFocusability="beforeDescendants" android:focusable="true" android:focusableInTouchMode="true" > 

也许有人遇到同样的问题,所以我会帮忙的。

我试图把我的主ScrollView中的android:descendantFocusability =“beforeDescendants”如下:

 <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:descendantFocusability="beforeDescendants"> /*my linearlayout or whatever to hold the views */ 

它不工作,所以我不得不使一个RelativeLayout ScrollView的父亲,并将android:descendantFocusability =“beforeDescendants”放置在父亲以及。

所以我解决了这个问题:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:descendantFocusability="blocksDescendants"> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> /*my linearlayout or whatever to hold the views */ 

我不得不使用MyScrollView的完全限定名称,否则我得到了一个膨胀exception。

 <com.mypackagename.MyScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/background" >