写一个自定义view
package com.anguomob.guideline
import android.content.Context
import android.graphics.Canvas
import android.graphics.Color
import android.util.AttributeSet
import android.view.View
class ZeroView constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) :
View(context, attrs, defStyleAttr) {
override fun onDraw(canvas: Canvas?) {
super.onDraw(canvas)
canvas?.drawColor(Color.RED);
}
}
放到布局当中
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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"
tools:context=".MainActivity">
<LinearLayout
android:id="@+id/left"
android:layout_width="100dp"
android:layout_height="match_parent"
android:background="@android:color/holo_green_dark"
android:orientation="horizontal"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:id="@+id/right"
android:layout_width="100dp"
android:layout_height="match_parent"
android:background="@android:color/holo_green_dark"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1231234"
app:layout_constraintEnd_toEndOf="@id/right"
app:layout_constraintStart_toStartOf="@id/left"
app:layout_constraintTop_toTopOf="parent" />
<!-- app:layout_constraintWidth_max="200dp"-->
<com.anguomob.guideline.ZeroView
android:id="@+id/tv2"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:maxWidth="200dp"
app:layout_constraintEnd_toEndOf="@id/right"
app:layout_constraintStart_toStartOf="@id/left"
app:layout_constraintTop_toBottomOf="@id/tv" />
</androidx.constraintlayout.widget.ConstraintLayout>
maxWidth好像是没有生效。
那我们通过app也就是约束布局自带的属性去约束呢
app:layout_constraintWidth_max="200dp"
<com.anguomob.guideline.ZeroView
android:id="@+id/tv2"
android:layout_width="wrap_content"
android:layout_height="40dp"
app:layout_constraintEnd_toEndOf="@id/right"
app:layout_constraintStart_toStartOf="@id/left"
app:layout_constraintTop_toBottomOf="@id/tv"
app:layout_constraintWidth_max="200dp" />
成功