2

所以我制作了一个自定义 ArrayAdapter 来填充我的列表,它只是覆盖了 getView(int position, View v, ViewGroup parent)。

如果我这样使用它:

public class MyActivity extends ListActivity {
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setListAdapter(adapter);
  }
}

一切正常,我的列表正确显示所有条目。

现在,如果我尝试在 XML 布局中的 <ListView/> 上使用相同的适配器类,如下所示:

ListView lv = (ListView) v.findViewById(R.id.list);
MyAdapter a = new MyAdapter (lv.getContext(), R.layout.list_item, entries);
lv.setAdapter(a);

它仅显示列表的第一个条目。

我已经尝试使用 adapter.add(entry.get(i)); 手动添加项目;并调用 adapter.notifyDataSetChanged(); 之后没有帮助。

e:这是 XML 布局:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" 
    android:padding="1dp">

    <TextView
        android:id="@+id/bc_path"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="3dp"
        android:textStyle="bold"
        android:textAppearance="?android:attr/textAppearanceSmall"/>

    <TextView
        android:id="@+id/bc_name"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="3dp"
        android:textStyle="bold"
        android:textAppearance="?android:attr/textAppearanceMedium" 
        android:background="@drawable/title_gradient"/>

    <TextView
        android:id="@+id/bc_genre"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="3dp"
        android:background="@drawable/location_gradient"
        android:textColor="#ffffff"/>

    <LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="0.4"
        android:layout_marginTop="3dp"
        android:layout_marginBottom="3dp">
        <ImageButton 
            android:id="@+id/bc_homepage"
            android:src="@drawable/homepage"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight=".1"
            android:padding="0dp"
            android:onClick="loadWebsite"
            android:background="@drawable/black_button"
            android:layout_margin="2dp"
            />
        <ImageButton 
            android:id="@+id/bc_facebook"
            android:src="@drawable/facebook"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight=".1"
            android:padding="0dp"
            android:onClick="loadWebsite"
            android:background="@drawable/black_button"
            android:layout_margin="2dp"
            />
        <ImageButton 
            android:id="@+id/bc_myspace"
            android:src="@drawable/myspace"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight=".1"
            android:padding="0dp"
            android:onClick="loadWebsite"
            android:background="@drawable/black_button"
            android:layout_margin="2dp"
            />
        <ImageButton 
            android:id="@+id/bc_fav"
            android:src="@drawable/d_attends"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight=".1"
            android:padding="0dp"
            android:onClick="favBand"
            android:background="@drawable/black_button"
            android:layout_margin="2dp"
            />
    </LinearLayout>

    <ListView
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"/>

</LinearLayout>

4

1 回答 1

11

I think you should not use ListView inside your scrollView as ListView inbuilt provides scrolling feature. In the above code , your ListView is coming at the bottom due to vertically adding all views inside Linear Layout so as root is ScrollView, List view's auto scroll view option is not able to show you all entries. Just give a thought for this and try adding ListView outside ScrollView.

于 2012-04-27T15:31:00.253 回答