- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在我的项目中,我有一个名为“marquee”的 Activity 。然而,出于某种原因,在“布局”的子文件夹中有 2 个文件与该 Activity 相关联。我不记得成功了。它为什么在这里?我一直在浪费时间更改“activity_marquee.xml”中的代码,但没有任何改变,因为我的手机只会使用以某种方式创建的“activity_marquee.xml (v26)”。如何确保所有手机都使用相同的“activity_marquee.xml”?我将如何删除不必要的?如果我删除其中一个,则同时删除两个,甚至包含这 2 个 Activity 的文件夹也会被删除。
我尝试将 minSdkVersion 和 targetSdkVersion(在 build.gradle 中)更改为不同的值,希望只保留 1 个 Activity ,但 (v26) 仍然存在。我还尝试添加到 AndroidManifest.xml 并更改最小、目标和最大 sdk 版本,但两个文件都保留了下来。
https://i.imgur.com/qrPoPHv.png (链接到图片,因为我还没有 10 个声誉来发布它)
build.gradle:
android {
compileSdkVersion 28
defaultConfig {
applicationId "(removed)"
minSdkVersion 19
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".MarqueeActivity">
</activity>
</application>
我只想为每个 Activity 使用 1 个布局文件,并让它在所有更高级别的 android API 上工作。我在 2 周前根据教程制作了另一个应用程序,我不必更改 2 个文件中的布局。如果可能的话,我也想在这里。
最佳答案
你需要了解resource qualifiers的概念.您可以为不同的设备设置提供不同的资源。这最常用于不同的图像分辨率或翻译,例如通过拥有一个“values”和一个“values-de”(德语的 de)文件夹,它们都包含一个 strings.xml 文件。您的应用程序将始终选择与您的手机配置匹配的最具体的资源。假设我将手机设置为德语,应用程序将在 values-de 文件夹中查找资源。否则它将回退到默认值文件夹。
如果您的两个布局文件相同,您只需将其从 layout-v26 文件夹中删除即可。如果该文件夹不包含任何其他文件,您可以将其完全删除。
If I delete either one, both of them, and even the folder that contains the 2 activities gets removed.
实际上,这两个文件在不同的文件夹中。但是如果您在项目资源管理器中选择了默认的“Android” View ,Android Studio 会将它们显示为就好像它们在同一个 View 中一样。如果将 View 切换到“项目”,您会看到它们位于不同的文件夹“res/layout”和“res/layout-v26”中。
关于Android Studio 有 2 个用于同一 Activity 的布局 Activity 文件。有必要吗?如何为所有较新的 SDK 版本保留 1 个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54041018/
我是一名优秀的程序员,十分优秀!