LinearLayout和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 

那么LinearLayoutLinearLayoutCompat之间的区别是什么?

添加了LinearLayoutCompat以支持在较旧的API级别(如分隔符)中添加的较新API级别的方法。 如果比较LinearLayout和LinearLayoutCompat中的方法,您可以看到Compat布局包含LinearLayout的所有方法,没有任何API级别限制。
这让我们回到你的问题:你正在尝试使用属于View类的一个方法( LinearLayoutinheritance自View类)。 View类支持的方法取决于不同的API级别,这就是为什么您不能在API级别17之前使用此方法的原因,无论是LinearLayout还是LinearLayoutCompat。

如果您想使用此方法,无论您使用的是什么API级别,都可以使用ViewCompat类并调用ViewCompat.setPaddingRelative(View view, ...)