基于项目的ListView自动高度

时间:2015-03-06 19:32:13

标签: android listview

    populateListView();

private void populateListView() {

    List<String> arrEventIDNames = dbHeplper.getALLNames(name);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.my_layout, R.id.MyTextViewl, populateNames); 

    ListView lv = (ListView) findViewById(R.id.finalListView);
    lv.setAdapter(adapter);
}

XML:

    <LinearLayout
    android:id="@+id/LL05"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_marginLeft="10dp"

     >
    <ListView
        android:id="@+id/finalListView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" 
        android:layout_marginBottom="10dp"
        >
    </ListView>

</LinearLayout>

鉴于上面的代码,我如何设置ListView,以便根据项目数(我的名称)自动设置高度,所以如果只有1个名称,它将显示1个名称,但如果有是10个名字,它会显示所有10个名字而不滚动?

2 个答案:

答案 0 :(得分:1)

你能相信我发现这是解决方案:

摆脱ListView并将其替换为LinearLayout。

        LinearLayout linearLayout = (LinearLayout) findViewById(R.id.LL05);

        final TextView rowTextView = new TextView(this);
        rowTextView.setText(arrEventIDNames);
        linearLayout.addView(rowTextView);

答案 1 :(得分:0)

我对您的评论的理解是您的ListView包含在ScrollView中。试试这个ListView布局:

android:scrollbars="none"

供参考,android:scrollbars

您的方法适用于少量数据行。您可以使用ScrollView中的TextView设计布局,也许可以实现相同的功能。然后,您不需要适配器。