Я хочу создать элемент-обертку, который можно многократно использовать во всем приложении, потому что это основа каждого экрана.Эта обертка должна быть добавлена в редактор макетов в Android Studio и должна содержать любые внутренние элементы, вставленные в редактор.Но эти элементы должны быть вставлены внутри макета под заголовком с изображением и только внутри указанной области, определенной в макете XML-оболочки (innerContainer).
Это макет оболочки:
<ScrollView
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">
<android.support.constraint.ConstraintLayout
...
android:background="@drawable/frame_container_layout"
tools:context=...>
<include
android:id="@+id/cv_header"
layout="@layout/cv_header"
...>
</include>
<android.support.constraint.ConstraintLayout
android:id="@+id/innerContainer"
.../>
</android.support.constraint.ConstraintLayout>
Мне нужно использовать этот макет в пользовательском представлении таким образом, чтобы при его использовании где-то элементы были вставлены только в innerContainer .
Дочерний XML:
<...custom_views.WrapperFragmentView
...
app:exampleColor="#33b5e5"
app:exampleDimension="24sp"
app:exampleDrawable="@android:drawable/ic_menu_add"
app:exampleString="Hello, WrapperFragmentView">
<TextView
android:id="@+id/textView1"
...
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
</...custom_views.WrapperFragmentView>
Дочерний элемент теперь вставляется поверх макета оболочки, что мне не нужно.Он не внутри innerContainer.
В файле kotlin я определил
class WrapperFragmentView : android.support.constraint.ConstraintLayout {
...
private fun init(attrs: AttributeSet?, defStyle: Int) {
var inflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
inflater.inflate(R.layout.cv_wrapper_fragment, this, true)
findViewById<android.support.constraint.ConstraintLayout>(R.id.innerContainer)
innerContainer - это представление, которое я хочу иметь в качестве корневого элемента для дочерних элементов, которые собираются его использовать.Не все макетвсе для этого.