我的应用程序显示了一个项目列表,其中每一行都是项目标题及其图像旁边,该行保留70%的文本空间和30%的图像。想象一下iphone app store的样子。建议使用哪种视图/布局组合?
我用Google搜索并找到这篇文章:
http://www.curious-creature.org/2009/02/22/android-layout-tricks-1/
这种观点听起来不错吗?
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip">
<ImageView
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"
android:src="@drawable/icon" />
<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="Simple application that shows how to use RelativeLayout" />
<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="My Application" />
答案 0 :(得分:1)
ListView,具有该行的自定义布局。创建ListAdapter(SimpleAdapter / ArrayAdapter)时,可以在构造函数中传递布局。如果图像始终相同,则非常简单,但如果图像不同,则需要覆盖getView方法以创建行的视图。
答案 1 :(得分:1)
如果通过“iPhone应用程序商店看起来像什么”,你的意思是“几乎所有的单一列表都在那里”(好吧,至少据我可以通过描述来判断,从未真正看过iPhone应用程序商店),似乎只有一种方法可行。 “理想”解决方案是使用RelativeLayout
,因为它允许您在图像旁边有两行文本,而无需复杂的布局结构。但是,正如您在this question和this other question中看到的那样,似乎存在一些问题。因此,如果您需要多行文本,则回退是使用水平LinearLayout,并在其中嵌套第二个垂直LinearLayout。有关LinearLayout应该是什么样子的更多详细信息,请参阅这些帖子。
注意:我假设你知道如何使用ListView。如果您不知道ListView的工作原理,那么我建议this article作为一个很好的起点。它有点旧,但仍然很好。请确保您也阅读了its sequels,其中介绍了如何使用convertView优化。
编辑:对于阅读此内容的其他人来说,这里有一个tutorial on Lists格式更好,更容易阅读。