【发布时间】:2011-07-15 12:11:58
【问题描述】:
我有这个布局,如果我不在我的 HorizontalScrollView 中使用 fillviewport=true,它会奇怪地缩放(可能是由于不明智的布局嵌套)。
当 fillviewport=false 时,一切正常(除了奇怪的缩放),但是当 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。)
【问题讨论】:
-
即使您要在
HorizontalScrollView上使用scrollTo 方法,您也不会滚动WebView内容,而是滚动WebView本身。我认为您对将一个包裹在另一个包裹中保持警惕是正确的。 -
我想为此找到另一种方法,但我一生都无法使用 WebView 内置的方法实现平滑的水平滚动。 :( 由于我的项目的目的是显示 html,因此实际上也没有任何其他有意义的视图。
标签: android android-layout android-scrollbar