Android 添加到CardView顶部的填充将使TextView中的文本变长
我在ConstraintLayout(CL)中有一个TextView,它位于CardView(CV)中。CL是CV中唯一的元素,CL中有两个不同的ImageView和TextView 文本和图像通过RecycleServiceAdapter和ViewHolder以编程方式填充。当文本在最后一个文本视图中变得足够长时,填充开始出现在卡片视图的顶部 带有测试字符串的布局xml:Android 添加到CardView顶部的填充将使TextView中的文本变长,android,android-layout,android-constraintlayout,android-cardview,Android,Android Layout,Android Constraintlayout,Android Cardview,我在ConstraintLayout(CL)中有一个TextView,它位于CardView(CV)中。CL是CV中唯一的元素,CL中有两个不同的ImageView和TextView 文本和图像通过RecycleServiceAdapter和ViewHolder以编程方式填充。当文本在最后一个文本视图中变得足够长时,填充开始出现在卡片视图的顶部 带有测试字符串的布局xml: <?xml version="1.0" encoding="utf-8"?> <androidx.car
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView 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:id="@+id/viewStopScheduleItem_cardView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="1dp"
android:clickable="true"
android:focusable="true"
app:cardBackgroundColor="@android:color/white"
app:cardCornerRadius="0dp"
app:cardElevation="4dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/viewStopScheduleItem_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="0dp">
<ImageView
android:id="@+id/viewStopScheduleItem_barImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@android:drawable/status_bar_item_background"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="0dp"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="8dp" />
<ImageView
android:id="@+id/viewStopScheduleItem_busImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/ic_directions_bus_white"
app:layout_constraintLeft_toRightOf="@+id/viewStopScheduleItem_barImageView"
android:layout_marginLeft="8dp"
app:layout_constraintTop_toTopOf="@+id/viewStopScheduleItem_barImageView"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toBottomOf="@+id/viewStopScheduleItem_barImageView"
android:layout_marginBottom="8dp" />
<TextView
android:id="@+id/viewStopScheduleItem_routeShortNameTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
app:layout_constraintTop_toTopOf="@+id/viewStopScheduleItem_routeLongNameTextView"
android:layout_marginTop="0dp"
app:layout_constraintLeft_toRightOf="@+id/viewStopScheduleItem_routeLongNameTextView"
android:layout_marginLeft="8dp" />
<TextView
android:id="@+id/viewStopScheduleItem_routeLongNameTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
app:layout_constraintLeft_toRightOf="@+id/viewStopScheduleItem_busImageView"
android:layout_marginLeft="8dp"
app:layout_constraintTop_toTopOf="@+id/viewStopScheduleItem_barImageView"
android:layout_marginTop="8dp" />
<TextView
android:id="@+id/viewStopScheduleItem_stopTime1TextView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM"
android:textAlignment="viewStart"
android:layout_gravity="start"
app:layout_constraintLeft_toRightOf="@+id/viewStopScheduleItem_busImageView"
android:layout_marginLeft="8dp"
android:layout_marginTop="8dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/viewStopScheduleItem_routeLongNameTextView"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
不带填充的短字符串
如果要删除填充顶部
,必须更改布局约束
,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView 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:id="@+id/viewStopScheduleItem_cardView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="1dp"
android:clickable="true"
android:focusable="true"
app:cardBackgroundColor="@android:color/white"
app:cardCornerRadius="0dp"
app:cardElevation="4dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/viewStopScheduleItem_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="0dp">
<ImageView
android:id="@+id/viewStopScheduleItem_barImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@android:drawable/status_bar_item_background"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="0dp"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="8dp" />
<ImageView
android:id="@+id/viewStopScheduleItem_busImageView"
android:layout_width="32dp"
android:layout_height="32dp"
app:srcCompat="@drawable/status_bar_item_background"
app:layout_constraintLeft_toRightOf="@+id/viewStopScheduleItem_barImageView"
android:layout_marginLeft="8dp"
app:layout_constraintTop_toTopOf="@+id/viewStopScheduleItem_barImageView"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toBottomOf="@+id/viewStopScheduleItem_barImageView"
android:layout_marginBottom="8dp" />
<TextView
android:id="@+id/viewStopScheduleItem_routeShortNameTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
app:layout_constraintTop_toTopOf="parent" \\
android:layout_marginTop="8dp"
app:layout_constraintLeft_toRightOf="@+id/viewStopScheduleItem_routeLongNameTextView"
android:layout_marginLeft="8dp" />
<TextView
android:id="@+id/viewStopScheduleItem_routeLongNameTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
app:layout_constraintLeft_toRightOf="@+id/viewStopScheduleItem_busImageView"
android:layout_marginLeft="8dp"
app:layout_constraintTop_toTopOf="parent" \\
android:layout_marginTop="8dp" />
<TextView
android:id="@+id/viewStopScheduleItem_stopTime1TextView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:
29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 9 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:9 PM 1:
29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:9 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1
:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:9 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:
9 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:9 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29
PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:9 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29
PM 1:9 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:9 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM
1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM"
android:textAlignment="viewStart"
android:layout_gravity="start"
app:layout_constraintLeft_toRightOf="@+id/viewStopScheduleItem_busImageView"
android:layout_marginLeft="8dp"
android:layout_marginTop="8dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/viewStopScheduleItem_routeLongNameTextView"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
@TheHeuman,
Mohammadraxa Abiri的答案将解决您的问题,但似乎您可以进一步清理xml文件。
请看下面的xml和附带的屏幕截图
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView
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:id="@+id/viewStopScheduleItem_cardView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="1dp"
android:clickable="true"
android:focusable="true"
app:cardBackgroundColor="@android:color/white"
app:cardCornerRadius="0dp"
app:cardElevation="4dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/viewStopScheduleItem_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp">
<ImageView
android:id="@+id/viewStopScheduleItem_barImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@android:drawable/status_bar_item_background" />
<ImageView
android:id="@+id/viewStopScheduleItem_busImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
app:layout_constraintStart_toEndOf="@+id/viewStopScheduleItem_barImageView"
app:layout_constraintTop_toTopOf="parent"
tools:background="@android:color/black"
tools:layout_height="48dp"
tools:layout_width="48dp" />
<TextView
android:id="@+id/viewStopScheduleItem_routeShortNameTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
app:layout_constraintLeft_toRightOf="@+id/viewStopScheduleItem_routeLongNameTextView"
app:layout_constraintTop_toTopOf="@+id/viewStopScheduleItem_routeLongNameTextView"
tools:text="TextView" />
<TextView
android:id="@+id/viewStopScheduleItem_routeLongNameTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
app:layout_constraintStart_toEndOf="@+id/viewStopScheduleItem_busImageView"
app:layout_constraintTop_toTopOf="parent"
tools:text="TextView" />
<TextView
android:id="@+id/viewStopScheduleItem_stopTime1TextView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:gravity="start"
android:layout_marginTop="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/viewStopScheduleItem_busImageView"
app:layout_constraintTop_toBottomOf="@+id/viewStopScheduleItem_routeLongNameTextView"
tools:text="1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM 1:29 PM" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
是否要卸下顶部衬垫?