如何使两个由约束布局制成的复合组件填充整个屏幕宽度(每个组件恰好使用屏幕宽度的一半)?
我不确定组件中指定的layout_width应该是什么,活动布局中指定的layout_width应该是什么。
这是我的代码的简化版本:
NavTextDrawer.kt :
class NavTextDrawer(context: Context, attrs: AttributeSet) : ConstraintLayout(context, attrs) {
init {
LayoutInflater.from(context).inflate(R.layout.navtextdrawer, this)
}
}
navtextdrawer.xml :
<?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"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@drawable/drawer_bg"
android:orientation="horizontal">
<TextView
android:id="@+id/dataTV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="4dp"
android:fontFamily="sans-serif-black"
android:gravity="center_vertical"
android:textColor="@android:color/black"
android:textSize="36sp"
android:text="TEST!@#"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
活动布局:
<?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">
<com.example.testproj.NavTextDrawer
android:id="@+id/cog"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.example.testproj.NavTextDrawer
android:id="@+id/sog"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toEndOf="@+id/cog"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
答案 0 :(得分:0)
将app:layout_constraintEnd_toStartOf="@+id/sog"
添加到您的cog
视图中
<com.example.testproj.NavTextDrawer
android:id="@+id/cog"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toStartOf="@+id/sog"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />