如何调整 ListView 中的 ImageView?
Posted
技术标签:
【中文标题】如何调整 ListView 中的 ImageView?【英文标题】:How do I adjust the ImageView in ListView? 【发布时间】:2016-03-15 04:30:06 【问题描述】:如何将ImageView
移动到左侧,如下图所示?
这是我的 listView 和布局。
custom_row.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:orientation="vertical">
<TextView android:id="@+id/ListType"
android:layout_
android:layout_
android:textSize="17sp"
android:textStyle="bold"
android:textColor="@color/black"/>
<TextView android:id="@+id/ListAmount"
android:layout_
android:layout_
android:textSize="17sp"
android:textColor="@color/blue"/>
<TextView android:id="@+id/ListDescription"
android:layout_
android:layout_
android:textSize="17sp"
android:textColor="@color/blue"/>
<ImageView
android:layout_
android:layout_
android:layout_marginLeft="10dp"
android:layout_marginTop="25dp"
android:id="@+id/photo" />
</LinearLayout>
谢谢!
【问题讨论】:
【参考方案1】:请尝试使用LinearLayout
,如下代码所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:layout_margin="10dp" >
<ImageView
android:id="@+id/photo"
android:layout_
android:layout_ />
<LinearLayout
android:layout_
android:layout_
android:layout_weight="1"
android:paddingLeft="10dp"
android:orientation="vertical" >
<TextView
android:id="@+id/ListType"
android:layout_
android:layout_
android:textColor="@color/black"
android:textSize="17sp"
android:textStyle="bold" />
<TextView
android:id="@+id/ListAmount"
android:layout_
android:layout_
android:textColor="@color/blue"
android:textSize="17sp" />
<TextView
android:id="@+id/ListDescription"
android:layout_
android:layout_
android:textColor="@color/blue"
android:textSize="17sp" />
</LinearLayout>
</LinearLayout>
【讨论】:
【参考方案2】:在这里更容易使用相对布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_>
<!-- Sit image to the Parent's left -->
<ImageView
android:layout_alignParentLeft="true"
android:layout_
android:layout_
android:layout_marginLeft="10dp"
android:layout_marginTop="25dp"
android:id="@+id/photo" />
<!-- Position, to right of Image & Stack views relative here as well -->
<RelativeLayout
android:layout_toRightOf="@+id/photo"
android:layout_
android:layout_>
<TextView android:id="@+id/ListType"
android:textSize="17sp"
android:textStyle="bold"
android:textColor="@color/black"
android:layout_
android:layout_/>
<TextView android:id="@+id/ListAmount"
android:layout_below="@+id/listType"
android:layout_
android:textSize="17sp"
android:textColor="@color/blue"
android:layout_/>
<TextView android:id="@+id/ListDescription"
android:layout_below="@+id/ListAmount"
android:layout_
android:textSize="17sp"
android:textColor="@color/blue"
android:layout_/>
</RelativeLayout>
</RelativeLayout>
【讨论】:
【参考方案3】:请尝试使用RelativeLayout
而不是LinearLayout
。为什么?这里我给你一些理由:
-
在给定布局的任何位置对齐任何内容会容易得多。
您可以轻松定义对齐和排列的属性。
您可以将视图拖入并排列在
Android Studio
中。
【讨论】:
【参考方案4】:您想要的布局需要嵌套布局策略。
您的顶部线性布局应该有horizontal
方向,里面有两个子布局,一个是imageview
,另一个是LinearLayout
。
第二线性布局具有vertical
方向,您可以在其中添加更多子视图,例如您的案例金额、索赔类型等。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_
android:layout_>
<ImageView
android:layout_
android:layout_
android:layout_marginLeft="10dp"
android:layout_marginTop="25dp"
android:id="@+id/photo" />
<LinearLayout
android:layout_
android:layout_
android:orientation="vertical" >
<TextView android:id="@+id/ListType"
android:textSize="17sp"
android:textStyle="bold"
android:textColor="@color/black"
android:layout_
android:layout_/>
<TextView android:id="@+id/ListAmount"
android:layout_
android:textSize="17sp"
android:textColor="@color/blue"
android:layout_/>
<TextView android:id="@+id/ListDescription"
android:layout_
android:textSize="17sp"
android:textColor="@color/blue"
android:layout_/>
</LinearLayout>
</LinearLayout>
您可以了解有关复杂布局的更多信息:here
您应该了解针对不同目的的不同布局类型。 在上面的 sn-p 中,您可以使用 layout_weight 为视图在其父布局中提供固定的宽度/区域
【讨论】:
【参考方案5】:请在下面找到代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:orientation="vertical">
<LinearLayout
android:layout_
android:layout_
android:orientation="horizontal">
<ImageView
android:layout_
android:layout_
android:layout_marginLeft="10dp"
android:layout_marginTop="25dp"
android:id="@+id/photo"
android:layout_weight=".2"/>
<LinearLayout
android:orientation="vertical"
android:layout_
android:layout_
android:layout_weight="0.8">
<TextView android:id="@+id/ListType"
android:layout_
android:layout_
android:textSize="17sp"
android:textStyle="bold"
android:textColor="@color/black"/>
<TextView android:id="@+id/ListAmount"
android:layout_
android:layout_
android:textSize="17sp"
android:textColor="@color/blue"/>
<TextView android:id="@+id/ListDescription"
android:layout_
android:layout_
android:textSize="17sp"
android:textColor="@color/blue"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
【讨论】:
您的问题解决了吗?如果有帮助,如果您接受我的回答,我将不胜感激以上是关于如何调整 ListView 中的 ImageView?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用“自动调整大小”避免 Android 中的小部件重叠。