2012-02-05 11 views
0

私はAndroidアプリケーションでビューを構築しています。これは水平と垂直の両方向にスクロールする必要があります。したがって、私は水平スクロールビューで私のビューを囲み、この水平スクロールビュー内に私は別のスクロールビュー(垂直スクロールビュー)を持っています。両方向のスクロールビュー内の要素の位置固定

スクロールビューの上部にはタイムライン(図の赤色)があります。垂直スクロールビューをスクロールするとき、タイムラインは静的でなければなりません。それは一番上にとどまるべきです。だからこのタイムラインはいつもトップに見える。

これらのスクロールビューの左側には、5つのボタンがあります(図では色が異なります)。これらのボタンは、垂直スクロールビューではスクロールしますが、水平スクロールビューではスクロールしないでください。つまり、これらのボタンは常に左側に表示される必要があります。

スクロールビューの白い部分は、両方向にスクロールします。

私はタイムライン(図の赤い部分)を上部に残し、水平スクロールビューでしかスクロールしないように管理していますが、5つのボタンをどこに置いて、垂直スクロールビューでスクロールします。

これは私のレイアウトです。今はタイムラインが一番上にあるためです。

<!-- Horizontal scroll view --> 
<HorizontalScrollView android:id="@+id/schedule_concerts_scroll_view" 
         android:layout_width="wrap_content" 
         android:layout_height="fill_parent" 
         android:fadingEdge="none" 
         android:scrollbars="none" 
         android:layout_below="@+id/schedule_day_pager_layout"> 

    <!-- Scroll container for horizontal scroll view --> 
    <RelativeLayout android:layout_width="wrap_content" 
        android:layout_height="fill_parent" 
        android:id="@+id/schedule_layout"> 

     <!-- The timeline (red in the illustration) Should only scroll horizontal and stay at top --> 
     <RelativeLayout android:id="@+id/schedule_timeline" 
         android:layout_width="wrap_content" 
         android:layout_height="23dp" 
         android:layout_marginBottom="0dp" 
         android:layout_alignParentTop="true" /> 

     <!-- Vertical scroll view --> 
     <ScrollView android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:fadingEdge="none" 
        android:scrollbars="none" 
        android:layout_below="@+id/schedule_timeline"> 

      <!-- Scroll container for vertical scroll view --> 
      <RelativeLayout android:layout_width="wrap_content" 
          android:layout_height="wrap_content"> 

       <!-- The content here should be scrolling both ways --> 

      </RelativeLayout> 

     </ScrollView> 

    </RelativeLayout> 

</HorizontalScrollView> 

これは私が言及しているイラストです。これは私のレイアウトがどのように終わるべきかを説明するのに役立ちます。

Illustration of scroll directions

誰も私が両方向のための固定位置を持つビューの両方の方向にスクロールを実現することができる方法を知っていますか?

答えて

1

左側のボタンを両方のスクロールビューから移動してonScrollChangedをリッスンし、垂直スクロールビューをスクロールするたびにボタンをスクロールするのは簡単だった。したがって、私はスクロールビューの中にボタンを入れ、onScrollChanged()が呼び出されたときにこのスクロールビューにonScroll()を呼び出しました。

onScrollChanged()を実装するためにScrollViewを拡張する方法の詳細については、this answerを参照してください。

関連する問題