2013-01-15 71 views
2

我正在嘗試製作日曆應用程序,並希望在ListView中列出一天中的所有事件並水平滾動日期。當我向右滾動時,ListView應該重繪明天的事件。我有一個sqllite數據庫中的所有事件。在Horizo​​ntalScrollView中放置ListView的最佳方法是什麼?

這是我的XML看起來像:

<?xml version="1.0" encoding="UTF-8"?>  

    <HorizontalScrollView 
       xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@+id/scrollview" 
       android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:fillViewport="true" 
      android:scrollbars="none"> 


      <LinearLayout 
        android:id="@+id/layout" 
        android:layout_width="wrap_content" 
        android:layout_height="fill_parent" 
        android:orientation="vertical" > 

        <TextView 
         android:id="@+id/textView1" 
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:text="Medium Text" 
         android:gravity="center" 
         android:textAppearance="?android:attr/textAppearanceMedium" /> 
        <ListView android:id="@+id/list" 
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent" /> 

      </LinearLayout> 

    </HorizontalScrollView> 

我如何填充ListView並使其得到我每次滾動一次新的數據?

+1

你爲什麼要那樣做? –

回答

0

錯誤的方法,ListView不能嵌套在ScrollView中。使用ViewPager來分頁。

+0

作者問一個Horizo​​ntalScrollView,因爲滾動軸是垂直的,所以沒有衝突。 – Sam

+0

這是一個通常的系統設計,你不能在ScrollView中使用ListView,不管它是否是Horizo​​ntalScrollView,因爲它是從ScrollView類派生的 – Nickolaus

+0

同意OP。理論上你可以重寫onInterceptTouchEvent來強制Horizo​​ntScrollView只處理水平滾動手勢(假設Horizo​​ntalScrollView不會這樣做)。但ViewPager開箱即可做出正確的事情,並且還提供了其他好處(例如,被限制的滾動)。 –

0

我已經在API 15和18的Horizo​​ntalScrollView中使用了一個ListView。兩個視圖似乎都能識別它們需要的手勢,所以它可以工作。但我注意到的一件事是,ListView的寬度只與列表中的第一行一樣寬。如果後續行更寬,「額外」(長度超過第1行)將不可見,但可以滾動查看剩餘文本等等......我沒有注意到其他任何不良影響。

相關問題