2013-05-28 69 views
0

我有一個窗體,其中有許多EditView字段。這些字段的數據從數據庫中加載(在onCreate()方法中)。屏幕上的最後一個對象應該是一個ListView,它應該顯示正在顯示的記錄的所有相關數據記錄。所有的數據都正確加載,併爲此適配器似乎工作正常。它加載正確的數據,它將數據正確格式化爲由適配器使用的.xml指定的兩行佈局。窗體上的ListView項目只顯示一個項目

的問題是,在屏幕上的ListView的「縮水」,只顯示一個項目,並增加了一個滾動條,如果有更多的項目。我期望ListView的大小擴大以顯示所有記錄,並且屏幕本身是可滾動的(一切都被包裝在ScrollView中)。

因此,XML是這樣的:

<ScrollView 
    android:layout_height="wrap_content" 
    android:id="@+id/ScrollView1"> 
    <RelativeLayout 
     android:layout_height="wrap_content" 
     android:id="@+id/RelativeLayout1"> 
    <EditView 
     android:id="@+id/EditView1> 
    </EditView> 
    <ListView 
     android:id="@+id/ListView1 
     android:layout_height="wrap_content" 
     android:layout_below="@id/EditView1> 
     android:divider="#b5b5b5" 
     android:dividerHeight="1dp" /> 

然後我用一個自定義的BaseAdapter填補數據到ListView中

listView = (ListView) findViewById(R.id.ListView1); 
dbRecords = db.getAllRecordsByRecordId(recordId); 
CBA_Records adapter = new CBA_Records(this, dbRecords); 
listView.setAdapter(adapter); 

這一切,我已經做過同樣的東西,除了這全部包裹在scrollview中。原因是可能會有更多的字段比適合更小的屏幕(或水平屏幕),因此屏幕必須是可滾動的。而且,列表視圖也必須有...

有什麼建議?

回答

2

多一點到什麼invertigo說:

或者,如果你不想ListView控件independantly滾動看看這個解決方案。不建議在ScrollView之內使用ListView

讓您ListView根,設置它的寬度和高度"match_parent"。將其他東西(ListView(標題))放在單獨的xml中。然後使用addHeaderView()方法將新的xml文件擴充爲標題,將其作爲標題添加到ListView(它看起來像要讓所有內容都滾動)。

+0

謝謝你們。我知道不推薦在ScrollView中使用ListView,但我無法想出任何其他方式來做我想做的事情。檢查完addHeaderView()後,我調整了SamColes.co.uk上的解決方案,經過一些調試後,我得到了這個工作。現在,它所有的滾動,因爲它應該:) – Lars

+0

網址:http://www.samcoles.co.uk/mobile/android-listactivity-with-a-header-or-footer/ – Lars

0

的ListView垂直自動移動,所以你現在有兩個垂直滾動區,這你期望消耗滾動事件?將ListView設置爲靜態高度(不推薦),或者設計佈局,以便只有要滾動的區域(即ListView)具有滾動功能並移除ScrollView。還要將您的基本佈局(在本例中爲RelativeLayout)設置爲height=match-parent和ListView height=0dp weight=1以防止ListView「縮小」。 android listview display all available items without scroll with static header