gpt4 book ai didi

android - 将 constraintlayout 元素显示为 recyclerview 项目

转载 作者:行者123 更新时间:2023-11-29 23:46:06 29 4
gpt4 key购买 nike

对于一个项目,我需要使用由 X 数量的 ConstraintLayout 元素(项目)组成的 RecyclerView。问题是我已经为特定项目创建了布局文件,但 View 从未正确呈现。仅当我设置项目 ConstraintLayout 元素的 minWidth 和 minHeight 元素时,项目才会呈现。

<android.support.constraint.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.constraint.Guideline
android:id="@+id/end_cardview_element"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.30" />

<android.support.constraint.Guideline
android:id="@+id/start_image_element"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0" />

<android.support.constraint.Guideline
android:id="@+id/end_image_element"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.25" />

<android.support.constraint.Guideline
android:id="@+id/start_vertical_border"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.04" />

<android.support.constraint.Guideline
android:id="@+id/end_vertical_border"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.41" />

<android.support.constraint.Guideline
android:id="@+id/end_image_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.12" />

<android.support.constraint.Guideline
android:id="@+id/end_text_place"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.32" />

<android.support.constraint.Guideline
android:id="@+id/mid_text_element"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.275" />

<android.support.constraint.Guideline
android:id="@+id/start_title_element"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.13810316" />

<android.support.constraint.Guideline
android:id="@+id/start_text_element"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.06" />

<android.support.constraint.Guideline
android:id="@+id/end_text_element"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.2" />

<ImageView
android:id="@+id/route_background"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/end_image_element"
app:layout_constraintEnd_toStartOf="@+id/end_vertical_border"
app:layout_constraintStart_toStartOf="@+id/start_vertical_border"
app:layout_constraintTop_toTopOf="@+id/start_image_element" />

<ImageView
android:id="@+id/route_icon"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/end_cardview_element"
app:layout_constraintEnd_toStartOf="@+id/end_image_icon"
app:layout_constraintStart_toStartOf="@+id/start_vertical_border"
app:layout_constraintTop_toTopOf="@+id/end_image_element"
app:srcCompat="@drawable/icon_swimming" />

<android.support.v7.widget.AppCompatTextView
android:id="@+id/route_place"
android:layout_width="0dp"
android:layout_height="0dp"
android:text="Lochem"
app:autoSizeMaxTextSize="24sp"
app:autoSizeMinTextSize="12sp"
app:autoSizeStepGranularity="2sp"
app:autoSizeTextType="uniform"
app:layout_constraintBottom_toTopOf="@+id/mid_text_element"
app:layout_constraintEnd_toStartOf="@+id/end_text_place"
app:layout_constraintStart_toStartOf="@+id/end_image_icon"
app:layout_constraintTop_toTopOf="@+id/end_image_element" />

<android.support.v7.widget.AppCompatTextView
android:id="@+id/route_time"
android:layout_width="0dp"
android:layout_height="0dp"
android:text="2 hours"
app:autoSizeMaxTextSize="24sp"
app:autoSizeMinTextSize="12sp"
app:autoSizeStepGranularity="2sp"
app:autoSizeTextType="uniform"
app:layout_constraintBottom_toTopOf="@+id/end_cardview_element"
app:layout_constraintEnd_toStartOf="@+id/end_text_place"
app:layout_constraintStart_toStartOf="@+id/end_image_icon"
app:layout_constraintTop_toTopOf="@+id/mid_text_element" />

<android.support.v7.widget.AppCompatTextView
android:id="@+id/route_title"
android:layout_width="0dp"
android:layout_height="0dp"
android:text="TextView"
android:textColor="@color/white"
app:autoSizeMaxTextSize="24sp"
app:autoSizeMinTextSize="16sp"
app:autoSizeStepGranularity="2sp"
app:autoSizeTextType="uniform"
app:layout_constraintBottom_toTopOf="@+id/end_text_element"
app:layout_constraintEnd_toStartOf="@+id/end_text_place"
app:layout_constraintStart_toStartOf="@+id/start_title_element"
app:layout_constraintTop_toTopOf="@+id/start_text_element" />

所有子元素(TextViews 和 ImageViews)约束都设置为不同的准则(我将其排除在代码块之外以使 XML 更易于阅读)。我不知道如何为此文件设置适当的约束,以便根据我设置的准则缩放元素。除了下面的 XML 之外,我还尝试通过将它们与父元素相等来设置根元素的约束,但这并没有解决我的问题。非常感谢任何帮助!

编辑 1:我可能忘记提及我使用的是百分比基本布局,以防这可能很重要。

编辑 2:添加了指南

编辑 3:添加了 recyclerview 的代码

<android.support.v7.widget.RecyclerView
android:id="@+id/suggested_routes_recyclerview"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="horizontal"
app:layout_constraintBottom_toTopOf="@+id/end__recyclerview"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/end_text_title">

最佳答案

在花了几个小时尝试解决问题后,我设法找到了解决方案。问题不在于我没有以一种好的方式设置我的约束,或者我的 RecyclerView 的大小不正确。真正的问题是我的数学技能没有达到要求。由于这是显而易见的事情,我仍然认为这可能会对某些人有所帮助,所以无论如何我都会发布我的解决方案。

当我根据我的 RecyclerView 中使用的项目定义指南时,我计算的是整个屏幕的百分比大小,而不是使用单个项目的大小。所以这导致项目显示得非常小,这解释了为什么设置最小尺寸解决了我的问题。感谢任何人看我的 XML

关于android - 将 constraintlayout 元素显示为 recyclerview 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51384453/

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