我有一个ListView,我想要一个固定的高度(比如说150dp)。然后,在ListView内部,对于单个行,文本可以具有不同的长度,因此我希望行具有不同的高度。
到目前为止,我只有所有行都有相同的高度,所以很长的文字被切断了。
有什么方法可以解决这个问题吗?
答案 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));
试试这样。它会起作用。