如何使图像视图与滚动视图中的网格视图一起滚动



我在网格视图上方有一些图像视图和文本视图,用于显示客户的评论/评论。图像视图用于产品插图,文本视图是产品的描述。 当我滚动网格视图时,仅滚动网格视图部分。如何使图像和文本也向上滚动。 点击这里查看图片

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/choseitem_image"
android:layout_width="match_parent"
android:layout_height="250dp"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:textColor="@android:color/black"
android:id="@+id/choseitem_title"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="250dp"
android:layout_height="wrap_content"
android:textSize="20sp"
android:textColor="@android:color/holo_red_light"
android:id="@+id/choseitem_price"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="15sp"
android:id="@+id/score"
android:textColor="@android:color/black"
/>
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="15sp"
android:id="@+id/description"
android:textColor="@android:color/black"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="15sp"
android:paddingLeft="20dp"
android:text="Comment"
android:textColor="@android:color/black"
/>
<GridView
android:id="@+id/comment"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</GridView>
</LinearLayout>

您可以使用 NestedScrollView 环绕所有视图以使其滚动。

<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--        put your content layout here-->
</androidx.core.widget.NestedScrollView>

您的布局应如下所示

<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/choseitem_image"
android:layout_width="match_parent"
android:layout_height="250dp" />
<TextView
android:id="@+id/choseitem_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:textSize="20sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/choseitem_price"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:textColor="@android:color/holo_red_light"
android:textSize="20sp" />
<TextView
android:id="@+id/score"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:textSize="15sp" />
</LinearLayout>
<TextView
android:id="@+id/description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:textSize="15sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="20dp"
android:text="Comment"
android:textColor="@android:color/black"
android:textSize="15sp" />
<GridView
android:id="@+id/comment"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</GridView>
</LinearLayout>
</androidx.core.widget.NestedScrollView>

是的,正如Nguyen提到的,将整个XML代码包装在嵌套滚动视图中是可行的,他甚至慷慨地为您提供了最终代码。

也就是说,我想尝试详细说明为什么会这样。 目前,网格视图正在滚动,主要是因为它是网格视图布局的属性。从文档中可以看出 "在二维滚动网格中显示项目的视图。网格中的项来自与此视图关联的 ListAdapter。 https://developer.android.com/reference/android/widget/GridView

要使任何其他组件可滚动,您需要一个 ScrollView,这将使该视图能够垂直滚动,您可以选择添加水平滚动视图,如果您想拥有水平滚动视图。

但是对于您的特定用例,您需要添加一个 NestedScrollView,因为您有多个视图,而不仅仅是一个子视图。根据定义,"NestedScrollView就像ScrollView一样,但它支持在新旧版本的Android上同时充当嵌套滚动父级和子级。默认情况下启用嵌套滚动。

https://developer.android.com/reference/androidx/core/widget/NestedScrollView

希望这可以帮助您更好地回答解决方案,而不仅仅是使用给出的答案!

相关内容

  • 没有找到相关文章

最新更新