LinearLayout 和 LinearLayoutCompat 有什么区别
What's the difference between LinearLayout and LinearLayoutCompat
我知道 LinearLayoutCompat
的实现是为了给我们一些更新的方法,这些方法被添加到 android 的较高级别到 Android 的较低级别。
我的问题是这个方法:
linearLayout.setPaddingRelative
它是在 API 17 中添加的,但我们应该使用以下代码将其放在较低的 API 中,对吗?
linearLayoutCompat.setPaddingRelative
但是我的 Android Studio 仍然显示以下错误。
Call requires API level 17 (current min is 15): android.view.View#setPaddingRelativ
那么LinearLayout
和LinearLayoutCompat
有什么区别呢?
添加了 LinearLayoutCompat
以支持在较新的 API 级别中添加到旧级别(如分隔线)的方法。如果您比较 LinearLayout and LinearLayoutCompat 中的方法,您会发现 Compat 布局具有 LinearLayout 的所有方法,没有任何 API 级别限制。
这让我们回到您的问题:您正在尝试使用属于 View class 的方法(LinearLayout
继承自 View
class) .视图 class 支持的方法取决于不同的 API 级别,这就是为什么您不能在 API 级别 17 之前使用此方法,无论是 LinearLayout 还是 LinearLayoutCompat。
如果您想使用此方法,无论您处于 API 哪个级别,您都可以使用 ViewCompat class 并调用 ViewCompat.setPaddingRelative(View view, ...)
.
我知道 LinearLayoutCompat
的实现是为了给我们一些更新的方法,这些方法被添加到 android 的较高级别到 Android 的较低级别。
我的问题是这个方法:
linearLayout.setPaddingRelative
它是在 API 17 中添加的,但我们应该使用以下代码将其放在较低的 API 中,对吗?
linearLayoutCompat.setPaddingRelative
但是我的 Android Studio 仍然显示以下错误。
Call requires API level 17 (current min is 15): android.view.View#setPaddingRelativ
那么LinearLayout
和LinearLayoutCompat
有什么区别呢?
LinearLayoutCompat
以支持在较新的 API 级别中添加到旧级别(如分隔线)的方法。如果您比较 LinearLayout and LinearLayoutCompat 中的方法,您会发现 Compat 布局具有 LinearLayout 的所有方法,没有任何 API 级别限制。
这让我们回到您的问题:您正在尝试使用属于 View class 的方法(LinearLayout
继承自 View
class) .视图 class 支持的方法取决于不同的 API 级别,这就是为什么您不能在 API 级别 17 之前使用此方法,无论是 LinearLayout 还是 LinearLayoutCompat。
如果您想使用此方法,无论您处于 API 哪个级别,您都可以使用 ViewCompat class 并调用 ViewCompat.setPaddingRelative(View view, ...)
.