2015-05-11 62 views
2

我花了很長時間看着滾動Android中的內容。但是,在我的應用程序中,我需要應用一個自定義類型的滾動,其中包含一個listview。一個listview有它自己的滾動和滾動視圖不應該與列表視圖一起使用。創建一個不帶ScrollView的可滾動LinearLayout

但是必須有一些內部滾動功能的意見。 View上的文檔確實表示支持,但所提供的方法似乎沒有提供任何偵聽器來檢測滾動。

scrollview也建立在FrameLayout上,這也會在我的應用程序中產生問題。

,您可以撥打的LinearLayout滾動帶:

android:isScrollContainer="true" 

,但是這似乎並沒有做任何事情。

事實上,你甚至可以設置滾動條的LinearLayout中:

android:scrollbars="vertical" 

但也似乎並沒有做任何事情。

我不想控制滾動,而是讓監聽器在屏幕上檢測滾動,而不管列表視圖,framelayout或任何其他控件是否可見。我想我正在尋找的是寫我自己的自定義ScrollView控件,但沒有FrameLayout的限制和所有不必要的開銷,我不需要。有什麼建議麼?

回答

1

論的方法來解決上述問題是有2 ScrollView,一個是包含所有視圖和另一內Scrollview列表視圖的代替並加入內LinearLayout的項目動態(內側內ScrollView

+0

你不應該在ScrollView中放置一個ListView。 – AndroidDev

+0

是的我知道這就是爲什麼我提到在scrollView中動態添加項目到線性佈局而不是ListView。請仔細閱讀上述說明 –

+0

我仍然需要列表視圖。我正在開發一個可供其他人使用的自定義控件,並且可以將它們與現有的ListView一起使用。 – AndroidDev

0

在這裏,外ScrollView這似乎是一個可行的解決方案,我測試了但不是徹底的。創建延伸的LinearLayout定製控件,然後重寫dispatchTouchEvent:

@Override 
    public boolean dispatchTouchEvent(MotionEvent event) 
    { 
    MotionEvent vtev = MotionEvent.obtain(event); 

    final int actionMasked = event.getActionMasked(); 

    float x = event.getRawX(); 
    float y = event.getRawY(); 

    switch (actionMasked) 
    { 
     case MotionEvent.ACTION_DOWN: 

     break; 
     case MotionEvent.ACTION_MOVE: 
     int z = 0; 
     z++; 
     break; 
     case MotionEvent.ACTION_UP: 
     break; 
     case MotionEvent.ACTION_CANCEL: 

     break; 
     case MotionEvent.ACTION_POINTER_DOWN: 
     { 
     final int index = event.getActionIndex(); 

     break; 
     } 
     case MotionEvent.ACTION_POINTER_UP: 

     break; 
    } 

    boolean ret = super.dispatchTouchEvent(event); 
    return ret; 
    } 
} 

您可以再放置子控件這個定製的LinearLayout內檢測到運動事件,即使列表視圖和ScrollViews都存在。這並不妨礙他們自己的滾動。

0

其實做一些研究後,我想出了一個解決這個問題:

起初我想在一個非常簡單的方式來解釋這個問題。

1.LinearLayout將可滾動。
2.要做到這一點,我們可以使用ScrollView,但有時我們需要在LinearLayout中使用ListView。
3.我們知道在ScrollView中我們不能使用像ListView那樣的其他滾動視圖

如何解決這個問題?

ListView是固有的可滾動的,所以我們可以在ListView中添加頁眉和頁腳。作爲結論:

1.創建佈局header.xml和footer.xml以及list.xml
2。在主活動中查找list.xml中的ListView引用,並在ListView引用中動態添加頁眉和頁腳。

相關問題