我有一个活动,其中包含一些文本视图和滚动视图中的按钮。我在相同的布局中有另一个列表视图,具有默认的滚动视图。 现在,应禁用该列表视图的滚动视图,并且高度应随行或单元格的增加而动态增加,并且应将父滚动视图应用于文本视图,按钮,列表视图。
这是我的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>
预先感谢
答案 0 :(得分:1)
您不应该将ListView
放在ScrollView
内,因为ListView
类实现了自己的滚动,并且它只是不接收手势,因为它们都由父级{ {1}}。我强烈建议您以某种方式简化布局。例如,您可以添加要滚动到ScrollView
的视图作为页眉或页脚。
更新:
Android SDK正式支持从API级别21(棒棒糖)开始的嵌套滚动容器。 ListView
和View
类中有一堆提供此功能的方法。要使Lollipop上的嵌套滚动工作,您必须通过在其XML声明中添加ViewGroup
或显式调用android:nestedScrollingEnabled="true"
来为子滚动视图启用嵌套滚动。
如果您想在棒棒糖之前的设备上进行嵌套滚动工作,则必须使用支持库中的相应实用程序类。首先,您必须将setNestedScrollingEnabled(true)
替换为NestedScrollView。后者同时实现了NestedScrollingParent和NestedScrollingChild,因此可以用作父级或子级滚动容器。
但是ScrollView
不支持嵌套滚动,因此您需要对其进行子类化并实现ListView
。幸运的是,支持库提供了NestedScrollingChildHelper类,因此您只需创建该类的实例并从视图类的相应方法中调用其方法即可。