我正在设计一个应用程序,如果在智能手机上运行,它的方向应该固定在纵向,或者在平板电脑上固定在横向。
所以我试图在 gradle 文件上使用 list 占位符,以便在应用程序的 list 上设置 screenOrientation 属性。问题是,我无法验证 gradle 文件的屏幕大小。有没有办法检查它是否是 build.gradle 上的平板电脑?或者也许我可以通过不同的方式获得相同的结果?
我尝试的另一件事是使用从带有 sw600dp 限定符的资源文件中获取的 bool 资源。但是 android studio 给出一个错误,指出它无法引用因 list 文件配置而异的资源。
代码:
AndroidManiefst.xml
...
<activity
...
android:screenOrientation="${fixedOrientation}">
build.gradle
android {
def portrait = 'portrait'
def landscape = 'landscape'
...
manifestPlaceholders.fixedOrientation = "$landscape"
}
fixedOrientation 目前是静态的,我想让它动态化。
最佳答案
is there a way to check if it is a tablet on build.gradle?
并不真地。
build.gradle
包含构建说明,仅此而已。而且,这些构建说明用于构建原则上可以在手机、平板电脑、电视、汽车、 watch 或 Jumbotron[1] 上运行的应用程序[1] 您需要提供自己的 Android 驱动的 Jumbotron
Gradle 最接近的事情是如果你想要不同的 APK,一个用于手机,一个用于平板电脑。然后,Gradle 将参与制作这些单独的 APK 所需的产品 flavor 的设置。但我不知道您将如何安排将一个 APK 分配给手机,而将另一个 APK 分配给平板电脑。
如果 Gradle 只是构建一个 APK,那么这个 APK 既适用于手机又适用于平板电脑,因此 Gradle 在构建时无法知道任何给定用户使用的是手机还是平板电脑。或超大屏幕。
关于android - 检查 gradle 文件中是否是平板电脑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60566456/