首页 > 解决方案 > 刷卡刷新布局是刷新列表视图。如何解决?

问题描述

我正在使用滑动刷新布局来刷新我的页面。我在其中放置了一个列表视图。每当我刷新它时,列表视图中的项目都会加载两次。我应该将我的列表视图放在该滑动刷新布局之外,并且滚动视图应该适用于整个页面。如何解决这个问题?我在这里附上我的 xml 文件。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#edecf2"
    android:focusableInTouchMode="true"
    tools:context=".orders.openorderdetails">

    <androidx.cardview.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_marginBottom="4dp"
        android:orientation="horizontal"
        android:padding="@dimen/activity_horizontal_margin"
        app:cardCornerRadius="0dp"
        app:cardElevation="6dp"
        tools:targetApi="n">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:orientation="horizontal">

            <ImageView
                android:layout_width="35dp"
                android:layout_height="35dp"
                android:layout_marginEnd="10dp"
                android:background="@drawable/greentickorders" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:fontFamily="@font/poppinsregular"
                android:text="Order Confirmed"
                android:textColor="#000000" />
        </LinearLayout>

    </androidx.cardview.widget.CardView>

    <androidx.cardview.widget.CardView
        android:id="@+id/pstracking"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:layout_marginBottom="8dp"
        android:orientation="horizontal"
        android:visibility="gone"
        app:cardCornerRadius="0dp"
        app:cardElevation="6dp"
        tools:targetApi="n">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:background="#909be7"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/pstrack"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginTop="10dp"
                android:layout_marginBottom="10dp"
                android:layout_weight="1"
                android:text="Track your PersonalShopper"
                android:textAlignment="center"
                android:textColor="#ffffff"
                android:textSize="20sp"
                android:textStyle="bold"
                tools:ignore="HardcodedText,InefficientWeight"
                tools:targetApi="n" />
        </LinearLayout>

    </androidx.cardview.widget.CardView>

    <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
        android:id="@+id/refreshLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">


        <ScrollView
            android:id="@+id/sample"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:scrollbars="none"
            tools:ignore="UselessParent">

            <LinearLayout
                android:id="@+id/linearlayout"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_gravity="center_horizontal"
                android:orientation="vertical"
                tools:ignore="ScrollViewSize">


                <androidx.cardview.widget.CardView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="10dp"
                    android:layout_marginTop="60dp"
                    android:layout_marginEnd="10dp"
                    android:orientation="horizontal"
                    android:padding="@dimen/activity_horizontal_margin"
                    app:cardCornerRadius="4dp"
                    app:cardElevation="2dp"
                    tools:targetApi="n">

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_margin="16dp"
                        android:layout_marginEnd="8dp"
                        android:orientation="horizontal">

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginEnd="8dp"
                            android:fontFamily="@font/montserratsemibold"
                            android:lines="1"
                            android:text="Order Id :"
                            android:textColor="#000000"
                            android:textSize="16sp"
                            tools:targetApi="n"
                            tools:ignore="HardcodedText" />

                        <TextView
                            android:id="@+id/orderid"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:fontFamily="@font/montserratregular"
                            android:text="@string/random"
                            android:textColor="#333333"
                            android:textSize="16sp"
                            tools:ignore="InefficientWeight"
                            tools:targetApi="n" />
                    </LinearLayout>
                </androidx.cardview.widget.CardView>


                <androidx.cardview.widget.CardView
                    android:id="@+id/card"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="10dp"
                    android:layout_marginTop="16dp"
                    android:layout_marginEnd="10dp"
                    android:orientation="horizontal"
                    android:padding="@dimen/activity_horizontal_margin"
                    android:visibility="gone"
                    app:cardCornerRadius="4dp"
                    app:cardElevation="2dp"
                    tools:targetApi="n">

                    <ImageView
                        android:id="@+id/image"
                        android:layout_width="90dp"
                        android:layout_height="90dp"
                        android:layout_gravity="center"
                        android:layout_margin="10dp"
                        android:scaleType="centerCrop"
                        tools:ignore="ContentDescription" />

                    <TextView
                        android:id="@+id/rateus1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerVertical="true"
                        android:layout_gravity="center"
                        android:fontFamily="@font/montserratsemibold"
                        android:scaleType="centerCrop"
                        android:text="QR will be displayed once personalshopper picks the product from the store"
                        android:textAlignment="center"
                        android:textColor="#bf1cba"
                        android:textSize="18sp"
                        android:textStyle="bold"
                        android:visibility="gone"
                        tools:ignore="RtlCompat"
                        tools:targetApi="n" />

                    <TextView
                        android:id="@+id/rateus"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerVertical="true"
                        android:layout_gravity="center"
                        android:fontFamily="@font/montserratsemibold"
                        android:scaleType="centerCrop"
                        android:text="@string/rateforqr"
                        android:textAlignment="center"
                        android:textColor="#bf1cba"
                        android:textSize="18sp"
                        android:textStyle="bold"
                        android:visibility="gone"
                        tools:ignore="RtlCompat"
                        tools:targetApi="n" />


                </androidx.cardview.widget.CardView>


                <androidx.cardview.widget.CardView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="10dp"
                    android:layout_marginTop="16dp"
                    android:layout_marginEnd="10dp"
                    android:orientation="horizontal"
                    android:padding="@dimen/activity_horizontal_margin"
                    app:cardCornerRadius="4dp"
                    app:cardElevation="2dp"
                    tools:targetApi="n">

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

                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="16dp"
                            android:layout_marginBottom="10dp"
                            android:orientation="horizontal">

                            <TextView
                                android:layout_width="170dp"
                                android:layout_height="wrap_content"
                                android:layout_marginStart="20dp"
                                android:layout_weight="1"
                                android:fontFamily="@font/poppinsmedium"
                                android:gravity="start"
                                android:text="@string/store_pricen"
                                android:textAlignment="textStart"
                                android:textColor="#000000"
                                android:textSize="16sp"
                                tools:targetApi="n" />


                            <TextView
                                android:id="@+id/stprice"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginStart="10dp"
                                android:layout_marginEnd="30dp"
                                android:layout_weight="1"
                                android:fontFamily="@font/montserratsemibold"
                                android:gravity="end"
                                android:lines="1"
                                android:text="@string/price"
                                android:textAlignment="textEnd"
                                android:textColor="#000000"
                                android:textSize="16sp"
                                android:textStyle="bold"
                                tools:targetApi="n" />
                        </LinearLayout>


                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="0dp"
                            android:layout_marginBottom="10dp"
                            android:orientation="horizontal">

                            <TextView
                                android:layout_width="170dp"
                                android:layout_height="wrap_content"
                                android:layout_marginStart="20dp"
                                android:layout_weight="1"
                                android:fontFamily="@font/poppinsmedium"
                                android:gravity="start"
                                android:text="@string/sales_tax"
                                android:textAlignment="textStart"
                                android:textColor="#000000"
                                android:textSize="16sp"
                                tools:targetApi="n" />


                            <TextView
                                android:id="@+id/salestax"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginStart="10dp"
                                android:layout_marginEnd="30dp"
                                android:layout_weight="1"
                                android:fontFamily="@font/montserratsemibold"
                                android:gravity="end"
                                android:lines="1"
                                android:text="@string/price"
                                android:textAlignment="textEnd"
                                android:textColor="#000000"

                                android:textSize="16sp"
                                android:textStyle="bold"
                                tools:targetApi="n" />
                        </LinearLayout>

                        <LinearLayout
                            android:visibility="gone"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="0dp"
                            android:layout_marginBottom="10dp"
                            android:orientation="horizontal"
                            android:id="@+id/processinglay">

                            <TextView
                                android:layout_width="170dp"
                                android:layout_height="wrap_content"
                                android:layout_marginStart="20dp"
                                android:layout_weight="1"
                                android:fontFamily="@font/poppinsmedium"
                                android:gravity="start"
                                android:text="Processing Fee"
                                android:textAlignment="textStart"
                                android:textColor="#000000"
                                android:textSize="16sp"
                                tools:targetApi="n" />


                            <TextView
                                android:id="@+id/processing"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginStart="10dp"
                                android:layout_marginEnd="30dp"
                                android:layout_weight="1"
                                android:fontFamily="@font/montserratsemibold"
                                android:gravity="end"
                                android:lines="1"
                                android:text="@string/price"
                                android:textAlignment="textEnd"
                                android:textColor="#000000"

                                android:textSize="16sp"
                                android:textStyle="bold"
                                tools:targetApi="n" />
                        </LinearLayout>

                        <LinearLayout
                            android:id="@+id/pspricelayout"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="0dp"
                            android:layout_marginBottom="10dp"
                            android:orientation="horizontal"
                            android:visibility="gone"
                            android:weightSum="2">

                            <TextView
                                android:layout_width="170dp"
                                android:layout_height="wrap_content"
                                android:layout_marginStart="20dp"
                                android:layout_weight="1"
                                android:fontFamily="@font/poppinsmedium"
                                android:gravity="start"
                                android:text="@string/personalshopper_price"
                                android:textAlignment="textStart"
                                android:textColor="#000000"
                                android:textSize="16sp"
                                tools:targetApi="n" />

                            <TextView
                                android:id="@+id/psprice"
                                android:layout_width="170dp"
                                android:layout_height="wrap_content"
                                android:layout_marginEnd="30dp"

                                android:layout_weight="1"
                                android:fontFamily="@font/montserratsemibold"
                                android:gravity="end"
                                android:text="@string/price"
                                android:textAlignment="textEnd"
                                android:textColor="#000000"
                                android:textSize="16sp"
                                android:textStyle="bold"
                                tools:targetApi="n" />
                        </LinearLayout>


                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="2dp"
                            android:layout_marginBottom="16dp"
                            android:orientation="horizontal">

                            <TextView
                                android:layout_width="170dp"
                                android:layout_height="wrap_content"
                                android:layout_marginStart="20dp"
                                android:layout_weight="1"
                                android:fontFamily="@font/montserratsemibold"
                                android:gravity="start"
                                android:text="Total Payment "
                                android:textAlignment="textStart"
                                android:textColor="#000000"
                                android:textSize="16sp"
                                android:textStyle="bold"
                                tools:targetApi="n" />


                            <TextView
                                android:id="@+id/price"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginStart="10dp"
                                android:layout_marginEnd="30dp"
                                android:layout_weight="1"
                                android:fontFamily="@font/montserratsemibold"
                                android:gravity="end"
                                android:lines="1"

                                android:text="@string/price"
                                android:textAlignment="textEnd"
                                android:textColor="#000000"
                                android:textSize="16sp"
                                android:textStyle="bold"
                                tools:targetApi="n" />
                        </LinearLayout>
                    </LinearLayout>

                </androidx.cardview.widget.CardView>

                <ListView
                    android:id="@+id/list"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="10dp"
                    android:layout_marginTop="16dp"
                    android:layout_marginEnd="10dp"
                    android:layout_marginBottom="50dp"
                    android:background="#ffffff"
                    android:scrollbars="none" />


            </LinearLayout>

        </ScrollView>
    </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>


</RelativeLayout>

标签: xmlandroid-studioandroid-layoutlayoutswiperefreshlayout

解决方案


您可以在setOnRefreshListener { }再次填充 listView 之前清理列表。


推荐阅读