1

ListView をスクロールできるようにするのに苦労しています。私が読んだ限りでは、LinearLayout 内に ListView を配置しても問題ないはずですが、スクロールしないのはなぜですか?

これがレイアウトです

<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);
4

3 に答える 3

0

リストビューをlinearLayoutに配置しても問題ありません。

listView の高さを wrap_content に設定することは適切ではありません。listView には多くの項目が含まれており、すべて動的なサイズと数を持っているためです。

グーグルはこのレクチャーでこれについて話しました。全部見てください。他のことにも役立つかもしれません。

于 2013-06-20T19:45:06.637 に答える
0

にはorientation属性が必要ですLinearLayout。に子が 1 つしかない場合でも、これをhorizontalまたはのいずれかに設定する必要があります。これが問題の原因である可能性があります。向きを何度も忘れてしまい、ビューの表示方法や動作に多くの奇妙な問題が発生する可能性があります。複数の子を持つ を使用すると、それらを適切に配置することが非常に難しくなる可能性があるため、ここではルート ビューとしてa を使用しないことを検討することもできます。3 人の子供を横または縦に並べたい場合は、a を検討してください。verticalLinearLayoutFrameLayoutFrameLayoutLinearLayout

于 2013-06-20T17:23:42.060 に答える