2014-03-28 133 views
0

我有一個個人資料頁中包含了一些textviews和imageviews和列表視圖一個LinearLayout中。 (見圖片)Android的列表視圖不滾動

enter image description here

的問題是,我想使整個頁面滾動像Twitter的應用程序,而不是隻列表視圖。所以listview需要擴展到最大高度。

我如何可以強制列表視圖擴展到最大尺寸,而不是可滾動。

我的LinearLayout會是第二個選項,但隨後必須能夠使用自定義行中的列表視圖中添加自定義arrayadapter等。

+0

可以發佈您的代碼也 – krishna

+1

據我瞭解你使用垂直的ListView。您可以將您的線性佈局添加到您的列表視圖的標題,並且所有頁面都可以滾動。 – anber

回答

8

您可以通過兩種方式使這個:

#1添加HeaderListview

View header = inflater.inflate(R.layout.your_header_layout, null); 
    yourlistview.addHeader(header); 

#2你可以設置基於children.Call列表視圖高度此FXN與ListView和將所有小部件放在滾動視圖中。

public static void setListViewHeightBasedOnChildren(ListView listView) { 

    ListAdapter listAdapter = listView.getAdapter(); 
    if (listAdapter == null) { 
     return; 
    } 

    int totalHeight = 0; 
    for (int i = 0, len = listAdapter.getCount(); i < len; i++) { 
     View listItem = listAdapter.getView(i, null, listView); 
     listItem.measure(0, 0); 
     totalHeight += listItem.getMeasuredHeight(); 
    } 

    ViewGroup.LayoutParams params = listView.getLayoutParams(); 
    params.height = totalHeight 
      + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); 
    listView.setLayoutParams(params); 
} 
+0

我用第二個函數太強制listview到maxheight。謝謝你們的幫助! – kevingoos

0

使用滾動型來包裝你的佈局:

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView 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"> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    ...... 
</LinearLayout 
</ScrollView> 

請記住,滾動型發生在只有一個孩子。因此請相應地調整原始佈局。

1

是的,你可以把滾動視圖作爲父視圖,並讓你的自定義類爲您的列表視圖。 您可以通過以下鏈接查看我的回答

list view in scroll view