0

我正在使用一个简单ListView的,其中每个项目只包含一个文本字段,没有别的。这是我的列表项的 xml 代码:

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="?android:attr/listPreferredItemHeight">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent" 
            android:layout_marginLeft="6dp"
            android:layout_marginRight="6dp"
            android:layout_marginTop="4dp"
            android:layout_marginBottom="4dp"
            android:background="@drawable/bg_card">


        <TextView
            android:id="@+id/txt"
            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:gravity="center_vertical"
            android:textSize="15sp"
            android:paddingLeft="6dip"
            android:textColor="#878787"
            android:textIsSelectable="true"/>

        </LinearLayout>

    </FrameLayout>

这是我使用列表视图的片段布局。

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#e5e5e5">

    <ListView
        android:id="@+id/listView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginLeft="16dp"
        android:layout_marginRight="16dp"
        android:dividerHeight="0dp"
        android:divider="@null"/>

    </RelativeLayout>

现在,像这样在我的片段中创建适配器的对象

Level weather_data[] = new Level[] {
    new Level(R.drawable.s1, 
              "Some text which will be present in the list item",      
              R.drawable.play_button)
        };

如果我在第二个参数(即文本)中有一个很长的句子,它的某些部分不会显示,并且该句子在列表项中显示不完整。

我曾尝试使用android:minHeight来更改列表项的高度,但没有奏效。有什么办法可以解决这个问题?谢谢

4

2 回答 2

0

将容器设置为就足够了wrap_content,它会在需要时调整大小。您显示的布局不完整,我只是怀疑您可能在此处进行了硬固定:

android:layout_height="?android:attr/listPreferredItemHeight

此外,您的布局中没有真正的意义来换行TextViewLinearLayout然后全部输入FrameLayout. 您可以使用 padding 和 bg 移动到相同的效果FrameLayout

于 2013-07-22T13:13:57.500 回答
0

尝试设置wrap_content而不是"?android:attr/listPreferredItemHeight"android:layout_height

像这样的东西:

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
于 2013-07-22T14:05:25.543 回答