我有这个布局,如果我不在我的HorizontalScrollView中使用fillviewport = true,它的缩放很奇怪(可能是由于不可靠的布局嵌套)。
这是布局(注意:我知道你不应该在滚动视图中放置webview。但是webview没有smoothscrollto也没有公开setscroller方法,所以...... bleh。)
<?xml version="1.0" encoding="utf-8"?>
<HorizontalScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webContainer"
android:layout_below="@+id/titlebar"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true">
<WebView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webZ"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</HorizontalScrollView>
设置android:fillViewport =“true”通常不会禁用视图中的滚动,是吗?
它应该确保滚动视图填充视口而不管其内容的大小,是吗?我认为视口是屏幕的可见区域,并且在webview中可见区域的边缘肯定有更多内容,我只是无法再滚动到它。
我可以从logcat看到正在调用滚动方法,它们只是不改变屏幕。 (除非我将fillviewport设置为false。)
答案 0 :(得分:5)
问题是你使用“fill_parent”,意思是“和我父母一样大”。请改为使用wrap_content作为宽度。
答案 1 :(得分:2)
我在使用包含WebView的标准ScrollView时遇到类似的问题:滚动不再起作用了。将fill_parent更改为wrap_content对我没有用。
当扩展视图是TextView时,Romain Guy的示例工作得很好,但当它被WebView替换时却没有。
什么不起作用:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:fillViewport="true">
<LinearLayout
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:orientation="vertical">
<WebView android:id="@+id/webview"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_weight="1.0">
</WebView>
<Button
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:text="Click">
</Button>
</LinearLayout>
</ScrollView>
当我在webview中添加少量数据时,似乎没问题:
但是当我用大量数据填充WebView时,它无法正常工作,如下所示:
始终显示按钮,滚动不再起作用。事实上,触摸滚动不起作用,DPAD滚动工作......
我没有找到任何理由,但我找到了一个解决方法:它包括添加一个包含WebView的LinearLayout
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:fillViewport="true">
<LinearLayout
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout android:id="@+id/linearlayout"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_weight="1.0"
android:orientation="vertical">
<WebView android:id="@+id/webview"
android:layout_width="fill_parent" android:layout_height="wrap_content">
</WebView>
</LinearLayout>
<Button
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:text="Click">
</Button>
</LinearLayout>
</ScrollView>
现在工作正常: