2

我正在創建一個android應用程序,用戶可以在該應用程序中查看同一屏幕上的頻道列表和節目列表。 例如: -如何使滾動視圖中的某些小部件不可滾動或粘貼在屏幕頂部,如標題

頻道的圖像將在左邊,節目安排在右邊,用戶可以水平滾動節目列表,因爲會有很多頻道,用戶也可以滾動完整垂直佈局。 所有這些都已經實現,但我無法完成的是頭部應該粘在頂部。

頭包含2個部分: - 於左側上述圖像和所述通道列表 1.簡單圖像查看應保持在頂部粘 和不滾動 2.計時列表頭像00:00,01: 00,02:00在上面的圖像視圖和 在上面的程序列表中,不應該垂直滾動,但應該是水平滾動的 。

以下是我用來顯示佈局的代碼,我無法完成 是以上兩點。他們只是不留粘他們也向上和向下滾動與佈局的其餘

 <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> 

         <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" 
             android:layout_alignParentLeft="true" android:id="@+id/image_layout"> 
             <ImageView android:layout_gravity="center_vertical|center_horizontal" android:layout_width="wrap_content" 
                android:layout_height="wrap_content" android:src="@drawable/tv_guide_channels" 
                android:scaleType="fitCenter" android:id="@+id/channel_img_header" 
                android:layout_alignParentTop="true"/> 
             <LinearLayout android:id="@+id/layout_to_add_channel_image" android:layout_width="wrap_content" 
                 android:layout_height="wrap_content" android:orientation="vertical" 
                 android:background="@color/White" android:layout_below="@id/channel_img_header" 
                 android:layout_alignParentBottom="true"/> 
         </RelativeLayout> 

         <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" 
             android:layout_alignParentRight="true" android:layout_toRightOf="@id/image_layout" 
             android:id="@+id/programme_layout"> 
             <HorizontalScrollView android:layout_width="fill_parent" android:layout_height="wrap_content"> 
                 <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content"> 
                    <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" 
                        android:orientation="horizontal" android:id="@+id/table_header" 
                        android:layout_alignParentTop="true"> 
                    </LinearLayout> 
                    <ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" 
                       android:layout_below="@id/table_header"> 
                    <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content"> 
                        <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" 
                            android:gravity="center_vertical" android:background="@color/greyblue" 
                            android:orientation="vertical" android:id="@+id/table_programme" 
                            android:layout_alignParentBottom="true"> 
                        </LinearLayout>  

                     </RelativeLayout> 
                     </ScrollView> 
                  </RelativeLayout> 
             </HorizontalScrollView> 
         </RelativeLayout> 

     </RelativeLayout> 

<LinearLayout android:layout_height="2dip" android:layout_width="fill_parent" android:background="@color/Black"></LinearLayout> 

回答

0

好感謝,但我找到了解決辦法: -

人們總是可以使用自定義部件和它不是那麼可怕也:) 在我來說,我使用自定義滾動視圖在XML中提到包名+類名

對於前:

<org.vision_asia.utils.MyScrollView1 
android:id="@+id/sv1" 
android:layout_below="@id/channel_img_header" 
android:layout_height="fill_parent" 
android:layout_width="wrap_content" 
android:scrollbars="none"> 

<LinearLayout 
    android:background="@color/White" 
    android:id="@+id/layout_to_add_channel_image" 
    android:layout_alignParentBottom="true" 
    android:layout_below="@id/channel_img_header" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:orientation="vertical" /> 

,你想這種滾動型與其它滾動視圖,例如,如果用戶滾動此滾動視圖然後同時其它滾動視圖必須得到所有的要素都在一個滾動視圖僅

public class MyScrollView1 extends ScrollView { 

    public MyScrollView2 sv2; 

    public MyScrollView1(Context context) { 
     super(context); 
     // TODO Auto-generated constructor stub 
    } 

    public MyScrollView1(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    protected void onScrollChanged(int l, int t, int oldl, int oldt) { 
     // TODO Auto-generated method stub 
     sv2.scrollTo(oldt, t); 
     super.onScrollChanged(l, t, oldl, oldt); 
    } 
} 

,並在滾動的同步主要活動必須這樣調用自定義的滾動視圖: -

sv1 = (MyScrollView1)channelsList.findViewById(R.id.sv1); 
sv1.sv2 = sv2; 

其中SV2是應同步

對於完全同步滾動視圖,你將需要2個自定義滾動視圖

享受

0

保持你的頭查看出任何滾動型。

編輯

嗨阿布舍克通過你的問題的靈感我試圖解決這個問題。 您可以檢查它的鏈接here

+0

我不能這樣做......頭部有兩個部分,一個不會水平移動,一個會水平移動,並具有時間。所以該部分應該與程序列表佈局處於相同的水平滾動視圖中。而且因爲有很多頻道,所以節目列表和頻道列表必須在一個滾動視圖下,以便您不需要單獨滾動查看頻道 – abhishek

+0

查看已編輯的答案。 – AB1209

1

我知道這是一個老問題,張貼我的答案,因爲這將幫助其他人誰正在尋找相同。
我使用StickyScrollViewItems庫來達到同樣的目的。 scrollView內部的任何視圖都可以標記爲'Sticky',以使其在頂部粘性。

相關問題