나는 여러 개의 스킨 (테마)을 앱에 가지고있는 방법을 알아 냈습니다. 색상을 변경할 수있을뿐만 아니라이 방법으로 레이아웃을 완성 할 수 있습니다. 이 접근법에 대한 또 다른 좋은 점은 앱에 모든 스킨 (모든 파일)을 제공하지 않지만 빌드 할 때 선택한 스킨 만 제공한다는 것입니다.
이 시나리오는 앱의 사용자 정의 모양을 원하지만 기능은 동일하지만 다른 고객에게 동일한 앱이있는 경우 필요합니다.
[Activity(Label = "TEST_SKINOV", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
#if SKIN_DEFAULT
SetContentView(Resource.Layout.Main);
#endif
#if SKIN_BLUE
SetContentView(Resource.Layout.MainSkinBlue);
#endif
}
}
.csproj 파일을 메모장으로 편집하고 스킨 이름을 추가하십시오. "DefineConstants"에 대한 검색과 같이, 그것을 당신의 피부 이름을 추가 :
<ItemGroup Condition="$(DefineConstants.Contains('SKIN_DEFAULT'))">
<AndroidResource Include="Resources\layout\Main.axml">
<SubType>Designer</SubType>
</AndroidResource>
</ItemGroup>
이유 : 모든 피부 특정 파일 또한
앱 크기를 최소화하기 위해 응용 프로그램에 포함하지 않도록 이렇게 'styles.xml'에 부모 테마를 만들지 말고, 부모 테마를 확장하고 당신이 그들에게 바라는 몇 가지 변경을하는 몇몇 자식 테마를 만드십시오. 이러한 테마는 여러 활동에서 개별적으로 사용할 수 있습니다. –사용자가 테마를 변경할 수있는 권한을 부여합니까? –