如何通过scrollview滚动webview的内容?

时间:2015-08-08 11:12:40

标签: android webview scrollview

我在webview中加载了一个HTML页面,它可以通过webview滚动内容,但我想滚动根视图。有什么建议吗?

这是我的布局代码:

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:fillViewport="true">


    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/layout_background">

        ...

            <WebView 
                 android:id="@+id/webView"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:descendantFocusability="blocksDescendants"
                 android:nestedScrollingEnabled="false">
            </WebView>

    </RelativeLayout>
</ScrollView>

2 个答案:

答案 0 :(得分:0)

为什么不在RelativeLayout上方的WebView内添加可滚动内容?你可以这样做:

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="#FFFFFF">

<WebView
    android:id="@+id/webView"
    android:layout_width="match_parent"
    android:layout_height="120dp"
    android:layout_alignParentBottom="true"
    android:background="#767676">
</WebView>

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentTop="true"
    android:layout_above="@id/webView"
    android:background="#222222">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Hello There"
        android:textColor="#FFFFFF">

    </TextView>

</ScrollView>
</RelativeLayout>

答案 1 :(得分:0)

如果您希望所有视图都在单个滚动条中滚动,那么有一个非常有用的库 - commonsguy/cwac-merge

使用下面提供的代码需要满足一个条件。请记住,这种针对您的问题的方法可能会有所不同,但最终结果正是您所需要的。

<强>条件:

  1. 此库只能与ListView一起使用。
  2. 多数,让我们开始。

      

    进行活动布局:

    1
      

    创建新的布局XML。将其命名为<RelativeLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:background="#FFFFFF"> <ListView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="match_parent"> </ListView> </RelativeLayout> 并粘贴   这段代码:

    viewWebView.xml
      

    创建新的布局XML。将其命名为<RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="120dp" android:layout_alignParentBottom="true" android:background="#767676"> </WebView> </RelativeLayout> 并粘贴   这段代码:

    viewTextView.xml
      

    所以,现在我们必须使用java文件。打开您的* Activity.java文件   图书馆的使用情况如下。

    <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    
    
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Hello There"
            android:textColor="#FFFFFF">
    
        </TextView>
    
    </RelativeLayout>
    

    值得记住的事情:

    1. ListView list = (ListView) findViewById(R.id.list); MergeAdapter mg = new MergeAdapter(); /** * Prgram your webview */ View web = getLayoutInflater().inflate(R.layout.viewWebView, null); WebView web = (WebView) web.findViewById(R.id.webView); //TODO: Code your webview!! mg.addView(web); mg.addView(getLayoutInflater().inflate(R.layout.viewTextView, null)); list.setAdapter(mg); 下的视图将以添加视图的方式添加。换句话说,MergeAdpater的顺序将是ListView中显示的项目的顺序。
    2. 干杯!如果您在实施任何内容时遇到任何问题,或者甚至将库添加到gradle中,请告诉我们!

      祝你好运!