LinearLayout和LinearLayoutCompat之间的区别是什么

时间:2016-10-08 10:46:35

标签: android android-appcompat

我知道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之间的区别是什么?

1 个答案:

答案 0 :(得分:10)

添加了

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

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