VS - Android - 如何将样式应用于主要活动

时间:2017-12-11 18:14:56

标签: android visual-studio xamarin android-activity android-manifest

只需要澄清我应该命名的内容,在何处以及如何将自定义样式应用于主要活动。

我想应用自定义样式" Theme.Transparent"从CustomStyles.xml文件到主活动。为此,您应将以下部分添加到AndroidManifest文件中:

<activity android:name="???" android:theme="@style/Theme.Transparent"/> // see main question about this

我不知道应该在哪个名称以及它如何与应用程序中的其他名称相对应(请参阅我的主要问题)。我找到了一些你指定活动名称的地方。我在代码中将这些地方标记为1,2,3,4(请参阅有关每个数字的其他问题)

MainActivity.cs

namespace CustomName // 1
{
    [Activity(Name = "???" Label = "CustomName", MainLauncher = true, Icon = "@drawable/icon")] // 2
    public class MainActivity : Activity // 3
    {

AndroidManifest.xml

<application android:label="CustomName"> // 4
    <activity android:name="ActivityName"> // 5
    </activity>
</application>

现在提问

主要问题:我应该在AndroidManifest.xml中添加活动部分,以便为其应用自定义样式的主要活动吗?那里的主要活动应该是什么名字?如果我在那里添加活动部分并为其命名,我还应该在哪里使用此名称使此样式与此活动一起使用?它的名字很混乱

代码1)应用程序命名空间名称应该是字面上的应用程序名称吗?

代码2)[活动]名称和标签标签,它们的用途以及如何命名?

代码3)公共类MainActivity,这个名称对样式有影响吗?

代码4)这是为了什么?

代码5)参见主要问题

它是如何连接的?

Joe LV的回答

的AndroidManifest.xml:

<application android:label="Custom Application Name"> // this name does not appear in the phone anyway
</application>

styles.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="Theme.Transparent" parent="android:style/Theme.Translucent">
    ...
  </style>
</resources>

MainActivity.cs:

namespace CustomName
{
    [Activity(Name = "CustomName.MainActivity", Label = "Custom Activity Name", MainLauncher = true, Icon = "@drawable/icon", Theme = "@styles/Theme.Transparent")] // the phone application receives name from this label

Q1)AndroidManifest.xml中的错误&#34;找不到与给定名称匹配的资源(&#39;主题&#39;值为&#39; @ styles / Theme.Transparent&#39;)&# 34; 答案:删除&#34;样式&#34; in&#34; @ styles / Theme.Transparent&#34;

Q2)手机中的应用程序从主要活动标签接收名称,而不是从应用程序标签接收名称。什么是应用程序标签以及应用程序本身获取活动名称的原因?

1 个答案:

答案 0 :(得分:1)

代码1)可以通过更改AndroidManifest.xml中的应用程序标签来更改应用程序名称,如下所示:<application android:label="MyName">,这样您的应用程序名称已更改为“MyName”,您可以在其中看到您的手机屏幕和应用程序命名空间仍为CustomName

代码2)[活动] NameLabel代码,两者都可以自行更改。 Name是当前活动的名称,可用于显式启动此活动,如@Jon所说,它应该与您的班级名称相匹配,Label是您可以看到的当前活动的标题它在你的活动的顶部。

代码3)MainActivity的名称与风格无关。您可以在styles.xml文件中对其进行自定义。

代码4)请参阅代码1)

代码5)主要问题。就像@Jon所说的那样,“如果使用[Activity]属性,则不需要将自己的部分添加到AndroidManifest.xml,因为它会在构建时生成条目。”

请将您的样式放入styles.xml文件而不是CustomStyles.xml文件中,并通过Theme="@style/Theme.Transparent"引用它。活动名称应如下所示:[Activity Name=package.TypeName],因此在您的代码中应为[Activity Name=CustomName.MainActivity]。 最后,您的Activity属性可以是:

[Activity(Label = "YourName", MainLauncher = true,Name = "CustomName.MainActivity",Theme ="@style/Theme.Transparent")]

更新

Q2)

  • 您的应用包含许多活动,每个Activity都有它的标签,当此活动为OnResume时,可以看到标签。这将告诉用户他们在使用您的应用时的位置,因此用户不会在您的应用中丢失。
  • Application的标签是您的应用名称,例如“Facebook”,“Google”等。