gpt4 book ai didi

android - 如何禁用 ListView 的 ScrollView 并随着单元格的增加增加 ListView 的高度?

转载 作者:行者123 更新时间:2023-11-29 00:57:54 25 4
gpt4 key购买 nike

我有一个在 ScrollView 中包含一些 TextView 和按钮的 Activity 。我有另一个具有默认 ScrollView 的相同布局的 ListView 。现在应该禁用该 ListView 的 ScrollView ,高度 ScrollView 应该随着行或单元格的增加而动态增加,父 ScrollView 应该应用于 TextView 、按钮、 ListView 。

这是我的 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:background="#efe9ef"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true"
tools:context="com.bodaty.samyata.samyata1.com.bodaty.samyata.samyata2.deyaPay.SuccessPage">

<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
>

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


<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="25dp"
android:layout_marginStart="25dp"
android:layout_marginTop="20dp"
android:fontFamily="@font/poppinsmedium"
android:text="ORDER DETAILS:"
android:textColor="#000000"
android:textSize="14sp" />
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginTop="10dp"
android:orientation="vertical"
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:background="#ffffff"
android:orientation="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
android:layout_marginTop="8dp"

android:orientation="horizontal">

<TextView
android:layout_width="170dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_weight="1"
android:fontFamily="@font/poppinsmedium"
android:gravity="start"
android:text="@string/sub_total"
android:textAlignment="textStart"
android:textColor="#58595d"
android:textSize="14sp"
tools:targetApi="n" />

<TextView
android:layout_width="55dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_weight="1"
android:gravity="end"
android:text="@string/dolor"
android:fontFamily="@font/poppinsmedium"
android:textAlignment="textEnd"
android:textColor="#000"
android:textSize="14sp"
tools:targetApi="n" />

<TextView
android:id="@+id/pq"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:layout_marginStart="10dp"
android:fontFamily="@font/poppinsmedium"
android:gravity="end"
android:lines="1"
android:text="@string/price"
android:textAlignment="textEnd"
android:textColor="#000"
android:textSize="14sp"
tools:targetApi="n" />
</LinearLayout>


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

<TextView
android:layout_width="170dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_weight="1"
android:fontFamily="@font/poppinsmedium"
android:gravity="start"
android:text="@string/tax"
android:textAlignment="textStart"
android:textColor="#58595d"
android:textSize="14sp"
tools:targetApi="n" />

<TextView
android:layout_width="53dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_weight="1"
android:fontFamily="@font/poppinsmedium"
android:gravity="end"
android:text="@string/dolor"

android:textAlignment="textEnd"
android:textColor="#000"
android:textSize="14sp"
tools:targetApi="n" />

<TextView
android:id="@+id/taxtopay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:layout_marginStart="10dp"
android:gravity="end"
android:lines="1"
android:text="@string/price"
android:textAlignment="textEnd"
android:textColor="#000"
android:textSize="14sp"
android:fontFamily="@font/poppinsmedium"

tools:targetApi="n" />
</LinearLayout>

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

<TextView
android:layout_width="170dp"
android:layout_height="match_parent"
android:layout_marginStart="10dp"
android:layout_weight="1"
android:fontFamily="@font/poppinsmedium"
android:gravity="start"
android:text="delivery charges :"
android:textAlignment="textStart"
android:textColor="#58595d"
android:textSize="14sp"
tools:targetApi="n" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_weight="1"
android:gravity="end"
android:text="@string/dolor"
android:textAlignment="textEnd"
android:textColor="#000000"
android:textSize="14sp"
android:fontFamily="@font/poppinsmedium"

tools:targetApi="n" />

<TextView
android:id="@+id/cost1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:layout_marginStart="10dp"
android:gravity="end"
android:lines="1"
android:fontFamily="@font/poppinsmedium"
android:text="@string/price"
android:textAlignment="textEnd"
android:textColor="#000000"
android:textSize="14sp"
tools:targetApi="n" />
</LinearLayout>


<View
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginEnd="10dp"
android:layout_marginTop="8dp"
android:layout_marginStart="10dp"
android:background="#808080">

</View>


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

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


<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_weight="1"
android:gravity="end"
android:text="@string/dolor"
android:fontFamily="@font/poppinsmedium"

android:textAlignment="textEnd"
android:textColor="#000"
android:textSize="14sp"
tools:targetApi="n" />

<TextView
android:id="@+id/amountpaid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:layout_marginStart="10dp"
android:gravity="end"
android:lines="1"
android:text="@string/price"
android:textAlignment="textEnd"
android:textColor="#000"
android:textSize="14sp"
android:fontFamily="@font/poppinsmedium"

tools:targetApi="n" />
</LinearLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginTop="10dp"
android:orientation="vertical"
app:cardCornerRadius="4dp"
app:cardElevation="2dp"
tools:targetApi="n">

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

android:orientation="vertical"
android:background="#ffffff"
android:padding="8dp"


android:weightSum="2">


<TextView
android:id="@+id/textView12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:fontFamily="@font/poppinsmedium"
android:gravity="start"
android:layout_marginTop="8dp"
android:text="@string/delivery_details"
android:textAlignment="textStart"
android:textColor="#000000"
android:textSize="14sp"
tools:targetApi="n" />


<View
android:layout_width="match_parent"
android:layout_height="0.4dp"
android:layout_marginTop="10dp"
android:background="#808080">

</View>



<TextView
android:id="@+id/dm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:fontFamily="@font/poppinsmedium"
android:text="@string/personal_shopper"
android:textColor="#58595d"
android:textSize="14sp"
android:layout_marginTop="4dp"
tools:targetApi="n"
tools:ignore="RtlHardcoded" />



<LinearLayout
android:id="@+id/tohide"
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="2dp"
android:orientation="horizontal">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:fontFamily="@font/poppinsmedium"
android:text="@string/rating_selectedn"
android:textColor="#58595d"
android:textSize="14sp"
tools:targetApi="n"
tools:ignore="RtlHardcoded" />

<TextView
android:id="@+id/psrate"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="2dp"
android:layout_marginStart="8dp"
android:layout_weight="1"
android:fontFamily="@font/poppinsmedium"
android:paddingEnd="5dp"
android:paddingStart="5dp"
android:text="@string/one"
android:textColor="#000000"
android:textSize="14sp"
tools:targetApi="n" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"

android:orientation="horizontal">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp"
android:fontFamily="@font/poppinsmedium"
android:text="@string/at_time"
android:textColor="#58595d"
android:textSize="14sp"
tools:ignore="RtlHardcoded"
tools:targetApi="n" />

<TextView
android:id="@+id/pstime"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="20dp"
android:layout_marginStart="2dp"
android:layout_weight="1"
android:fontFamily="@font/poppinsmedium"
android:paddingEnd="5dp"
android:paddingStart="5dp"
android:text="@string/_0_00_pm"
android:textColor="#000000"
android:textSize="14sp"
tools:targetApi="n" />
</LinearLayout>

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

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:fontFamily="@font/poppinsmedium"
android:text="@string/delivery_charges"
android:textColor="#58595d"
android:textSize="14sp"
tools:targetApi="n"
tools:ignore="RtlHardcoded" />

<TextView
android:id="@+id/cost"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginStart="2dp"
android:layout_weight="1"
android:fontFamily="@font/poppinsmedium"
android:paddingEnd="5dp"
android:paddingStart="5dp"
android:text="@string/_100"
android:textColor="#000000"
android:textSize="14sp"
tools:targetApi="n" />
</LinearLayout>


</LinearLayout>
</LinearLayout>
</android.support.v7.widget.CardView>

<TextView
android:id="@+id/deyapay"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginLeft="25dp"
android:layout_marginStart="25dp"
android:fontFamily="@font/questrial"
android:textColor="#000000"
android:textSize="20sp" />

<ListView
android:id="@+id/list"
android:background="#ffffff"
android:layout_width="match_parent"
android:layout_height="600dp"
android:layout_marginBottom="50dp"
android:layout_marginTop="16dp"
/>

</LinearLayout>

</ScrollView>
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:orientation="horizontal"
android:layout_alignParentBottom="true"
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="horizontal"
android:layout_margin="10dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:layout_marginStart="8dp"
android:orientation="vertical">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Grand total"
android:textColor="#58b90c"
android:background="#ffffff"
android:textSize="14sp"
android:fontFamily="@font/poppinsmedium"
/>

<TextView
android:id="@+id/amountpaid1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="$00.00"
android:textColor="#000000"
android:background="#ffffff"
android:textSize="14sp"
android:fontFamily="@font/poppinsmedium"


/>
</LinearLayout>


<Button
android:id="@+id/homepage"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="8dp"
android:layout_marginTop="10dp"
android:layout_weight="1.2"
android:background="@drawable/buttonbackground"
android:fontFamily="@font/questrial"
android:gravity="center_vertical"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:text="Continue"
android:textAlignment="center"
android:textColor="#ffffff"
android:textSize="16sp"
android:layout_alignParentBottom="true"
android:textStyle="bold"
tools:ignore="RtlCompat"
tools:targetApi="n">

</Button>
</LinearLayout>
</android.support.v7.widget.CardView>

</RelativeLayout>

提前致谢

最佳答案

你不应该将 ListView 放在 ScrollView 中,因为 ListView 类实现了它自己的滚动,它只是不接收手势因为它们都由父 ScrollView 处理。我强烈建议您以某种方式简化您的布局。例如,您可以将要滚动的 View 添加到 ListView 作为页眉或页脚。

更新:

从 API 级别 21 (Lollipop) 开始,Android SDK 正式支持嵌套滚动容器。 ViewViewGroup 类中有许多方法可提供此功能。要使嵌套滚动在 Lollipop 上工作,您必须通过将 android:nestedScrollingEnabled="true" 添加到其 XML 声明或通过显式调用 setNestedScrollingEnabled(true)< 来为子 ScrollView 启用它.

如果你想让嵌套滚动在 Lollipop 之前的设备上工作,你可能会这样做,你必须使用支持库中的相应实用程序类。首先,您必须将 ScrollView 替换为 NestedScrollView .后者同时实现了 NestedScrollingParentNestedScrollingChild因此它可以用作父滚动容器或子滚动容器。

但是 ListView 不支持嵌套滚动,因此您需要对其进行子类化并实现 NestedScrollingChild。幸运的是,Support 库提供了 NestedScrollingChildHelper类,因此您只需创建此类的实例并从 View 类的相应方法中调用它的方法。

关于android - 如何禁用 ListView 的 ScrollView 并随着单元格的增加增加 ListView 的高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53296862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com