我正在尝试在Android Studio 3.0.1中使用约束布局。
Gradle具有依赖性:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.+'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.android.support:cardview-v7:26.1.+'
implementation 'com.android.support:recyclerview-v7:26.1.+'
implementation 'com.squareup.picasso:picasso:2.5.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
我正在尝试设计一个非常简单的布局。我想在它旁边放一个带有TextView的ImageView(100dp宽度)和整个可用空间的宽度。
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
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:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imageViewThumbnail"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:contentDescription="@string/app_name"
android:scaleType="fitStart"
android:src="@drawable/placeholder"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:id="@+id/textViewTitle"
android:layout_width="220dp"
android:layout_height="100dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:maxLines="1"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/imageViewThumbnail"
app:layout_constraintTop_toTopOf="parent"/>
</android.support.constraint.ConstraintLayout>
当我将TextView的layout_width切换为0dp时出现我的问题。布局设计选项卡正确显示宽度,但当应用程序在设备上运行时,ImageView将消失。
我想我不了解Constraint Layout的工作原理。我也尝试使用百分比指南,但结果相同。
如何将图像宽度设置为100dp,将TextView宽度设置为父ConstraintLayout的剩余可用空间?