setContentView () вызывается первым или последним? - PullRequest
2 голосов
/ 27 сентября 2019

Недавно я получил вопрос о создании программных представлений.Почему мы вызываем setContentView после инициализации всех представлений и установки всех параметров?

Простой пример:

    override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    val l = LinearLayout(this)
    l.orientation = LinearLayout.VERTICAL
    for (i in 0 until 300)
        l.addView(someTextView(i.toString()))
    setContentView(l)
}

fun someTextView(text: String): TextView {
    val t = TextView(this)
    t.text = text
    return t
}

против

    override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    val l = LinearLayout(this)
    setContentView(l)
    l.orientation = LinearLayout.VERTICAL
    for (i in 0 until 300)
        l.addView(someTextView(i.toString()))

}

fun someTextView(text: String): TextView {
    val t = TextView(this)
    t.text = text
    return t
}

Есть ли какие-либоразница в эффективности между двумя?Также в случае более сложных взглядов?

1 Ответ

0 голосов
/ 27 сентября 2019

Нет проблем с вашим кодом. В этом причина.-setContentView просто сделайте то, что представляет собой представление, представляющее интерфейс Activity -First. Вы создаете линейное представление с помощью ActivityContext. затем добавляете в него множество представлений. После того, как вы сказали «Привет, Activity, это ваше представление».во-вторых, вы просто присоединяете свой линейный макет к Activity и после этого добавляете view в него. Оба нормальны и ничего не случилось.НО

setContentView довольно хорош в реальной жизни, потому что никто не будет делать то, что вы пытаетесь сделать. Каждому действию, фрагменту и т. Д. Нужен XML-файл, который определяет его макет, и каждое представление является организацией.После этого они могут назвать его представлением по идентификатору, организовать представление, просто отредактировав XML-файл (не изменяя много кода).

Итак. В основном setContentView - это просто метод дляинтерфейс, вид которого будет интерфейсом этого

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...