Android:如何使ListView中的行具有可变高度?

时间:2011-09-16 01:58:07

标签: android listview

我有一个ListView,我想要一个固定的高度(比如说150dp)。然后,在ListView内部,对于单个行,文本可以具有不同的长度,因此我希望行具有不同的高度。

到目前为止,我只有所有行都有相同的高度,所以很长的文字被切断了。

有什么方法可以解决这个问题吗?

3 个答案:

答案 0 :(得分:2)

最后,设法让它发挥作用。

我使用以下适配器代码:

ArrayAdapter<String> mcqAnsAdapter = new
       ArrayAdapter<String>(this, R.layout.mylist, mcqOptions);

我创建了一个新的布局mylist.xml,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@android:id/text1"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:textAppearance="?android:attr/textAppearanceLarge"
  android:gravity="center_vertical"
  android:checkMark="?android:attr/listChoiceIndicatorSingle"
  android:paddingLeft="6dip"
  android:paddingRight="6dip"
/>

以上类似于Android定义的“simple_list_item_single_choice.xml”,除了我 将高度更改为“wrap_content”。

奇怪的是,我第一次尝试它并不起作用。然后,我在这里和那里做了一些更改,然后再次回到这个版本,它工作。不知道发生了什么事。但无论如何,很高兴看到它正常运作。

感谢所有试图提供帮助的人。最受赞赏的。

现在,另一个问题 - 我可以将复选标记放在文本的左侧而不是默认的右侧吗?

答案 1 :(得分:0)

您可以尝试将行minHeight设置为150dp,将height设置为wrap_content

您应该使用自定义list_item布局,这可能有所帮助:Android Lists: ListActivity And ListView II – Custom Adapter And List Item View

答案 2 :(得分:0)

convertedview.setlayoutparams(new listview.setlayoutparams(width, height));

试试这样。它会起作用。