Как создать и подкласс панели инструментов Android в отдельный модуль? - PullRequest
0 голосов
/ 24 декабря 2018

TL; DR

Как создать пользовательский Toolbar в отдельном widget модуле Android?

Описание

Я создал widget модуль, в который я помещаю все пользовательские виджеты, используемые моим приложением, однако он выходит из строя из-за android.view.InflateException

 Caused by: android.view.InflateException: Binary XML file line #15:
     Binary XML file line #15: Error inflating class com.example.widget.Toolbar
 Caused by: android.view.InflateException:
     Binary XML file line #15: Error inflating class com.example.widget.Toolbar

Вот Toolbar

class Toolbar : android.support.v7.widget.Toolbar {

    private lateinit var title: TextView

    constructor(context: Context) : this(context, null)

    constructor(context: Context, attrs: AttributeSet?) : this(
        context,
        attrs,
        android.support.v7.appcompat.R.attr.toolbarStyle
    )

    constructor(
        context: Context,
        attrs: AttributeSet?,
        defStyleAttr: Int
    ) : super(context, attrs, defStyleAttr) {
      init()
    }

    private fun init() {
        val view = LayoutInflater.from(context).inflate(R.layout.toolbar, this, true)
        title = view.findViewById(R.id.title)
    }

}

и макет XML

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize">

    <TextView
        android:id="@+id/text_title"
        style="?attr/titleTextAppearance"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center" />

</android.support.v7.widget.Toolbar>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...