2010-10-26 261 views
0

我有一個很常見的問題。垂直滾動和水平滾動

我有一個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

回答

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>