在 ListView 中的文本旁边显示进度条

Display progress bar beside the text in ListView

我正在尝试制作一个与下图完全一样的带有进度条的 listView

我使用 android:layout_toRightOfPro-XXX-XXX 旁边显示进度条,但它显示在文本下方。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView android:id="@+id/ListProject"
        android:textStyle="bold"
        android:textColor="@color/black"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    <ProgressBar
        android:id="@+id/downloadProgressBar"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/ListProject" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/blue"
        android:id="@+id/ListTimeIn"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/blue"
        android:layout_toLeftOf="@+id/ListTimeIn"
        android:id="@+id/ListTimeOut"/>
    <TextView android:id="@+id/ListDescription"
        android:layout_width="wrap_content"
        android:textColor="@color/blue"
        android:layout_height="wrap_content"/>

</LinearLayout>

改为相对布局

@Chintan 回答

将您的 xml 替换为下面的 xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:id="@+id/ListProject"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:lines="2"
            android:textColor="@color/black"
            android:textStyle="bold" />

        <ProgressBar
            android:id="@+id/downloadProgressBar"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

    </LinearLayout>

    <TextView
        android:id="@+id/ListTimeIn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/blue" />

    <TextView
        android:id="@+id/ListTimeOut"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/ListTimeIn"
        android:textColor="@color/blue" />

    <TextView
        android:id="@+id/ListDescription"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/blue" />

</LinearLayout>

让我知道这是否适合你。

输入以下代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:id="@+id/ListProject"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="HProxx -cxcscdc"
            android:layout_alignParentLeft="true"
            android:layout_toLeftOf="@+id/downloadProgressBar"
            android:textColor="@color/black"
            android:textStyle="bold" />

        <ProgressBar
            android:id="@+id/downloadProgressBar"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            />
    </RelativeLayout>
    <TextView
        android:id="@+id/ListTimeIn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="HProxx -cxcscdc"
        android:textColor="#CADFFF" />

    <TextView
        android:id="@+id/ListTimeOut"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/ListTimeIn"
        android:text="HProxx -cxcscdc"
        android:textColor="#CADFFF" />

    <TextView
        android:id="@+id/ListDescription"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="HProxx -cxcscdc"
        android:textColor="#CADFFF" />

</LinearLayout>

您需要使用相对布局提供的工具。

您的 ProgressBar 需要 "toRightOf" 以及 "toEndOf" TextView:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical">

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingTop="10dp">

    <TextView
        android:id="@+id/ListProject"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingEnd="20dp"
        android:paddingRight="20dp"
        android:text="Test"
        android:textColor="@color/black"
        android:textStyle="bold"/>

    <ProgressBar
        android:id="@+id/downloadProgressBar"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toEndOf="@id/ListProject"
        android:layout_toRightOf="@+id/ListProject"/>
</RelativeLayout>

<TextView
    android:id="@+id/ListTimeIn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Test"/>

<TextView
    android:id="@+id/ListTimeOut"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="test"/>

<TextView
    android:id="@+id/ListDescription"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="test"/>
</LinearLayout>

我刚刚测试了这个 xml,它运行良好。