编辑后评论:

事实证明,使用RelativeLayout进行这项工作并不容易.在答案的底部我已经包含了一个RelativeLayout,它提供了所需的效果,但只有在它包含在ListView中之后.之后,出现了问题中描述的相同问题.这是通过使用LinearLayout(s)来修复的.

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:paddingLeft="10dp"

android:orientation="horizontal">

android:layout_width="100dp"

android:layout_height="80dp"

android:background="@drawable/icon"

android:scaleType="fitXY"

android:layout_marginRight="10dp"/>

android:layout_height="fill_parent"

android:layout_width="fill_parent"

android:gravity="left|center_vertical"

android:text="I'm the text"/>

如果您想要两个文本框,可以在ImageView之后嵌套第二个orientation =“vertical”和LinearLayout,然后将文本框放在那里.

这有效,但我不得不承认我不知道为什么RelativeLayouts没有.例如,这个blog post by Romain Guy特别指出RelativeLayout应该.当我尝试它时,我从来没有完成它的工作;不可否认,我没有像他那样完全做到,但我唯一的改变是TextViews的一些属性,这不应该产生那么大的差别.

这是最初的答案:

我认为你将Android与RelativeLayout中所有那些有些矛盾的指令混淆了.我把你的东西重新格式化为:

android:id="@+id/row"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:padding="10dip">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:paddingRight="10dip"

android:src="@drawable/icon"

android:layout_alignParentLeft="true"

android:layout_alignParentTop="true"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_toRightOf="@id/item_image"

android:layout_centerVertical="true"

android:text="Blah!"/>

这很好.我删除了许多冗余的android:layout_alignParentxxx,因为它们不是必需的.此视图现在出现在左上角的图片和垂直居中的文本.如果你想让图片垂直居中,那么你不能让RelativeLayout在android:layout_height =“wrap_content”,因为它试图使自己不高于图片的高度.你必须指定一个高度,例如80dp,然后使用android:scaleType =“fitXY”将ImageView设置为固定高度,如60dp,使其缩小以适应.

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐