max*_*max 11 android android-appcompat
我知道我LinearLayoutCompat已经意识到给了我们一些更新的方法,它们被更高级别的android添加到更低级别的android.
我的问题是这个方法:
linearLayout.setPaddingRelative
Run Code Online (Sandbox Code Playgroud)
这是在API 17中添加的,但我们应该通过使用以下代码将其置于较低的API中吗?
linearLayoutCompat.setPaddingRelative
Run Code Online (Sandbox Code Playgroud)
但我的Android Studio仍然显示以下错误.
Call requires API level 17 (current min is 15): android.view.View#setPaddingRelativ
Run Code Online (Sandbox Code Playgroud)
那么LinearLayout和之间的区别是LinearLayoutCompat什么?
reV*_*rse 13
LinearLayoutCompat被添加到支持方法中,这些方法在较新的API级别(如分隔符)中添加.如果比较LinearLayout和LinearLayoutCompat中的方法,您会发现Compat布局包含LinearLayout的所有方法,没有任何API级别限制.
这让我们回到你的问题:你正在尝试使用一个方法,它是View类的一部分(LinearLayout继承自View类).View类支持的方法取决于不同的API级别,这就是为什么你不能在API级别17之前使用此方法的原因,无论是LinearLayout还是LinearLayoutCompat.
如果您想使用此方法,无论您使用的是什么API级别,都可以使用ViewCompat类并调用ViewCompat.setPaddingRelative(View view, ...).