android.widget.TextView与TextView

时间:2019-06-24 08:38:50

标签: java android android-studio-3.0

它们两个都链接到相同的TextView.java文件,并且在“设计”选项卡上看起来相同。问题是,什么时候应该使用短<TextView ... />,什么时候应该使用长<android.widget.TextView />

我可以使用<ConstraintLayout>代替<android.support.constraint.ConstraintLayout>(两者都链接到相同的ConstraintLayout.class,但在设计选项卡上看起来不同),以及如何知道如何使用小部件和其他android reference的“组件”

3 个答案:

答案 0 :(得分:3)

关于默认小部件,您可以在 Android 框架的android.viewandroid.widget软件包中找到它们,因此可以省略软件包名称,因为无论如何它都是隐式搜索的。

由于ConstraintLayout不是默认的窗口小部件,因此无法使用它来省略程序包名称。

除了默认的小部件包之外, AndroidX 替换了解析器组件,用于解析实际的类,因此<TextView>实际上解析为AppCompatTextView,因此最好不要使用类的别名,例如<android.widget.TextView>

答案 1 :(得分:1)

<TextView /><android.widget.TextView />相同。您可以互换使用它,因为它们是Android基本组件的一部分。 但是,如果使用ConstraintLayout,它将作为您添加到应用程序的build.gradle文件中的支持库的一部分。要从中访问一个类,您需要完全告诉xml您想要该特定包中的ConstraintLayout。

答案 2 :(得分:1)

  

问题是我何时应该使用短<TextView ... />,何时应该使用长<android.widget.TextView />

两者都是相同的,您可以使用任何一种,最好使用<TextView ... />,因为大多数开发人员都使用它,并且编写的代码更少。

  

我可以使用<ConstraintLayout>代替<android.support.constraint.ConstraintLayout>

不,您不能在android中使用它,但您必须使用单独的支持库才能使用它implementation 'com.android.support.constraint:constraint-layout:1.1.3'

  

我怎么知道如何使用Android参考中的小部件和其他“组件”

任何带有软件包android.widget.xxxxandroid.view.xxxx的东西都直接使用xxxx,而其他人则在布局中使用完整的软件包名称。

您可以看到here上的android小部件下的类,以及here上的android视图下的类