我有Activity
,在里面我需要三个屏幕。问题是,它们可以/应该以两种方式滚动(水平和垂直)。由于通常不鼓励使用普通的ScrollView嵌入HorizontalScrollView
,并且通常会导致比解决更多的问题,是否有其他方法可以实现这一点,而无需编写自己的SurfaceView
类并手动处理滚动?
到目前为止我尝试的是:
将HorizontalScrollView
和ScrollView
相互嵌入。它运作不佳。虽然水平滚动几乎完美地工作(几乎因为我甚至可以在开始滚动之前看到第二个屏幕的一部分),但垂直根本不起作用(如预期的那样)并且部分覆盖屏幕。
我无法将其拆分为三个不同的活动,因为代码需要在所有3个页面中更改/更新视图。
<com.tseng.widget.TalentLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/TalentLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
>
... many dozen of other views here ...
</com.tseng.widget.TaletLayout>
这基本上是三个水平页面中每一个的布局。
实施此方法的最佳方法是什么?如果除了编写我自己的滚动功能之外没有其他解决方案,我可以看一下好的教程或代码吗?
答案 0 :(得分:1)
据我所知,无法创建一个水平和垂直同时滚动的滚动视图。至少不那么容易。但是,您可以使用合并,但滚动仅限于水平或垂直...
这样的事情:
<?xml version="1.0" encoding="utf-8"?>
<merge
android:id="@+id/merge"
xmlns:android="http://schemas.android.com/apk/res/android">
<ScrollView android:id="@+id/ScrollView01"
<HorizontalScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
<TextView android:id="@+id/Text"
</TextView>
</HorizontalScrollView>
</ScrollView>
</merge>