2013-06-20 56 views
1

我正在努力獲得一個ListView能夠滾動。據我所知,應該可以在LinearLayout中使用ListView,那麼它爲什麼不滾動?爲什麼我的ListView與ArrayAdapter不可滾動?

這是佈局

<FrameLayout 
    android:id="@android:id/tabcontent" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <LinearLayout 
     android:id="@+id/tab2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 

     <ListView 
      android:id="@+id/listView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" > 

     </ListView> 

    </LinearLayout> 

    <include layout="@layout/tab3" /> 

    <include layout="@layout/tab1" />     


</FrameLayout> 

這裏是我填滿它用的東西..

File folder = new File(Environment.getExternalStorageDirectory().getPath()+"/Download/"); 
File[] listOfFiles = folder.listFiles(); 
ArrayAdapter<String> arrayadp = new ArrayAdapter<String>(this, R.layout.list_files); 

for (File file : listOfFiles) { 
    if (file.isFile()) { 
     String extension = ""; 
     String filename = file.getName(); 
     int i = filename.lastIndexOf('.'); 
     if (i > 0) { 
      extension = filename.substring(i+1); 
     }    
     if(extension.equalsIgnoreCase("wav")){ 
      arrayadp.add(filename); 
     } 
    } 
} 
ListView listView = (ListView) findViewById(R.id.listView1); 
listView.setAdapter(arrayadp); 

回答

0

orientation屬性是必要的LinearLayout。您需要將其設置爲horizontalvertical,即使LinearLayout只有一個孩子。我認爲這可能是你的問題的原因;我很多時候都忘記了方向,它可能會導致許多奇怪的問題,你的視圖如何顯示和行爲。你也可以考慮不要在這裏使用FrameLayout作爲你的根視圖,因爲擁有多個孩子的FrameLayout可能使它很難正確地佈置它們。如果你想要你的三個孩子在一個水平或垂直的行,考慮一個LinearLayout

0

在一個linearLayout中放置一個listview是可以的。

將listView的高度設置爲wrap_content並不行,因爲listView包含很多項目,都具有動態大小和數量。

谷歌已在this lecture上討論過這個問題。請全部觀看。它也可能幫助你做其他事情。

0

這個問題是因爲你的根佈局是一個FrameLayout。

插入LinearLayout中如何根

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 
<FrameLayout 
    android:id="@android:id/tabcontent" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <LinearLayout 
     android:id="@+id/tab2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 

     <ListView 
      android:id="@+id/listView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" > 

     </ListView> 

    </LinearLayout> 

    <include layout="@layout/tab3" /> 

    <include layout="@layout/tab1" />     


</FrameLayout> 
</LinearLayout>