ListView图形布局中的自定义列表行

spa*_*pan 2 xml android listview

关于如何创建自定义行并将其添加到ListView,有很多帖子和无数问题.但是,我发现的所有帖子都使用Java代码将自定义行布局文件设置为列表.大多数样本都是这样的:

ArrayAdapter<String> adapter = new ArrayAdapter<String>
    (this,R.layout.row_layout,R.id.text1,colors);
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法直接在XML文件中执行此操作?ListView上是否有属性可以为行设置自定义布局文件?

我问的原因是因为我试图在Eclipse的Graphical Layout工具中完成所有(大部分)布局工作,我希望能够在不启动应用程序的情况下预览我的布局.

当然这应该是这样或那样的吗?如果我能够在XML中使用它,我会非常高兴但是如果我必须编写一个自定义类,它将显示在图形布局编辑器的"自定义"部分中,它也可以.

非常感谢你的时间.

spa*_*pan 12

可以在图形编辑器中预览ListViews.只需右键单击ListView并选择"预览列表内容".然后选择"自定义"并选择自定义行布局.

这是一个例子:

my_custom_list.xml

 <ListView android:id="@android:id/list"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:layout_weight="1"
           android:drawSelectorOnTop="false">
     <!-- Preview: listitem=@layout/account_list_item -->
 </ListView>
Run Code Online (Sandbox Code Playgroud)

my_custom_row.xml

<CheckBox
    android:id="@+id/icon"

    android:layout_width="wrap_content"
    android:layout_height="fill_parent"

    android:layout_alignParentTop="true"
    android:layout_alignParentBottom="true"
    android:layout_marginRight="6dip"
     />

<TextView  
    android:id="@+id/secondLine"

    android:layout_width="fill_parent"
    android:layout_height="26dip" 

    android:layout_toRightOf="@id/icon"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"

    android:singleLine="true"
    android:ellipsize="marquee"
    android:text="mail@mail.com" />

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"

    android:layout_toRightOf="@id/icon"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:layout_above="@id/secondLine"
    android:layout_alignWithParentIfMissing="true"

    android:gravity="center_vertical"
    android:text="Account name" />
Run Code Online (Sandbox Code Playgroud)

在my_custom_list.xml的图形编辑器中,右键单击列表.从"预览列表内容"中的"自定义"选项中选择my_custom_row.