android.widget.TextView против TextView - PullRequest
0 голосов
/ 24 июня 2019

Они оба ссылаются на один и тот же файл TextView.java и выглядят одинаково на вкладке дизайна.Вопрос в том, когда я должен использовать короткий <TextView ... />, а когда длинный <android.widget.TextView />

Могу ли я использовать, например, <ConstraintLayout> вместо <android.support.constraint.ConstraintLayout> (обе ссылки на один и тот же ConstraintLayout.класс, но выглядит по-другому на вкладке дизайна), и как я знаю, как использовать виджеты и другие "компоненты" из Android-справка

Ответы [ 3 ]

3 голосов
/ 24 июня 2019

Когда речь идет о виджетах по умолчанию, которые вы найдете в пакетах android.view и android.widget платформы Android , вы можете опустить имя пакета, так как он неявно ищется в любом случае.

Поскольку ConstraintLayout не является виджетом по умолчанию, вы не можете пропустить имя пакета вместе с ним.

В дополнение к стандартным пакетам виджетов, AndroidX заменяет компоненты инфлатера, разрешающие фактические классы,таким образом, <TextView> вместо этого фактически разрешается в AppCompatTextView, поэтому лучше не использовать сокращенное имя класса, например <android.widget.TextView>.

1 голос
/ 24 июня 2019

Вопрос в том, когда я должен использовать короткую <TextView ... />, а когда длинную <android.widget.TextView />

Обе эти вещи - то же самое, что вы можете использовать любую, Лучше использовать<TextView ... />, так как большинство разработчиков используют его, и писать меньше кода.

Могу ли я использовать, например, <ConstraintLayout> вместо <android.support.constraint.ConstraintLayout>

Нет, вы не можете это не идет по умолчанию в Android, вы должны использоватьотдельная библиотека поддержки для его использования implementation 'com.android.support.constraint:constraint-layout:1.1.3'

как узнать, как использовать виджеты и другие "компоненты" из справочника Android

Любая вещь с пакетом android.widget.xxxx или android.view.xxxx используйте xxxx напрямую, для других используйте полное имя пакета в макете.

Вы можете увидеть классы, которые находятся под виджетом Android над здесь , и классы, которые находятся под видом Androidболее здесь

1 голос
/ 24 июня 2019

<TextView /> и <android.widget.TextView /> одинаковы.Вы можете использовать его взаимозаменяемо, потому что они являются частью основных компонентов Android.Однако в случае с ConstraintLayout он входит в состав библиотеки поддержки, которую вы добавили в файл build.gradle в своем приложении.Для доступа к классу из этого вам нужно полностью сообщить xml, что вы хотите ConstraintLayout из этого конкретного пакета.

...