垂直滚动和水平滚动

问题描述:

我有一个很常见的问题。垂直滚动和水平滚动

我有一个Activity,它里面我需要三个屏幕。问题是,它们可以/应该以两种方式滚动(水平和垂直)。由于嵌入HorizontalScrollView与正常的ScrollView通常不鼓励,通常会导致更多的问题比解决问题,有没有其他方法来实现这一点,而不必编写自己的SurfaceView类和手动处理滚动?

我到目前为止试过的是: 已将HorizontalScrollViewScrollView嵌入对方。它运作不好。虽然水平滚动功能几乎完美(几乎是因为在开始滚动之前我仍然可以看到第二个屏幕的一部分),但垂直无法正常工作(如预期的那样),部分覆盖了屏幕。

我不能将它分成三个不同的活动,因为代码需要在所有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

你有没有考虑用tabLayout而不是去?在设计面向智能手机的用户界面方面存在限制,在另一范例中可能不会有什么意义,我怀疑用户想要在屏幕上移动以查看信息。 – blindstuff 2010-10-26 17:35:24

据我所知,不可能创建一个水平和垂直同时滚动的滚动视图。至少不那么容易。但是你可以使用一个合并,但滚动限于水平或垂直只是......

事情是这样的:

<?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>