我知道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
之间的区别是什么?
答案 0 :(得分:10)
LinearLayoutCompat
来支持在旧版API(如分隔符)中添加到较新API级别的方法。如果您比较LinearLayout和LinearLayoutCompat中的方法,您会发现Compat布局包含LinearLayout的所有方法,而没有任何API级别限制。
这将我们回到您的问题:您正在尝试使用属于View类(LinearLayout
继承自View
类)的一部分的方法。 View类支持的方法取决于不同的API级别,这就是为什么你不能在API级别17之前使用此方法的原因,无论是LinearLayout还是LinearLayoutCompat。
如果您想使用此方法,无论您使用的是什么API级别,都可以使用ViewCompat课程并致电ViewCompat.setPaddingRelative(View view, ...)
。