如何调整 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 中的小部件重叠。

如何调整 ListView 的高度以适应内容

将 headerView 添加到小部件上的小部件中的 listView 调整大小 android

如何以编程方式使 ListView 的列自动调整大小?

C# ListView 列宽自动调整

如何Xamarin.Forms调整水平的ListView的大小