【问题标题】:Xamarin Android - Actionbar icon paddingXamarin Android - 操作栏图标填充
【发布时间】:2015-10-26 04:06:37
【问题描述】:

我已经在我的应用程序中设置了操作栏的样式,但是它在 Android KitKat(右侧设备)和 Android Lollipop(左侧设备)上看起来不同,如图所示:

我想添加一些图标填充(左、右)以使其与 Lollipop 上的相同。任何想法如何修改以下 XML 文件?

资源/值/styles.xml

<?xml version="1.0" encoding="utf-8" ?>
<resources>
  <style name="MyCustomTheme" parent="android:Theme.Holo.Light">
    <item name="android:colorActivatedHighlight">@android:color/transparent</item>
    <item name="android:actionMenuTextColor">@android:color/white</item>
  </style>
</resources>

资源/values-v21/styles.xml

<?xml version="1.0" encoding="utf-8" ?> 
<resources>
    <style name="MyCustomTheme" parent="android:Theme.Material.Light">
      <item name="android:colorActivatedHighlight">@android:color/transparent</item>
      <item name="android:actionMenuTextColor">@android:color/white</item>
      <item name="android:textColorPrimary">@android:color/white</item>
    </style>
</resources>

【问题讨论】:

  • 如何隐藏应用程序图标?如果汉堡包图标出现一些操作栏布局问题,我无法隐藏应用程序图标

标签: android android-actionbar xamarin.forms


【解决方案1】:

资源/值/styles.xml

<?xml version="1.0" encoding="utf-8" ?>
<resources>
  <style name="MyCustomTheme" parent="android:Theme.Holo.Light">
    <item name="android:colorActivatedHighlight">@android:color/transparent</item>
    <item name="android:actionMenuTextColor">@android:color/white</item>
    <item name="android:actionBarStyle">@style/MyCustomActionBar</item>
  </style>

  <style name="MyCustomActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
        <item name="android:logo">@drawable/actionBarIcon</item>
  </style>
</resources>

资源/drawable/actionBarIcon.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:drawable="@drawable/ic_launcher"
        android:right="10dp" android:left="10dp"/>
</layer-list>

【讨论】:

  • 错误: 找不到与给定名称匹配的资源(在 'android:logo' 处,值为 '@drawable/actionBarIcon')。 它很奇怪,因为文件 actionBarIcon.xml 位于 drawable 文件夹中,所以它应该可以工作......
  • 尝试将所有字母设置为小写。
  • 改成小写后,错误消失了,但是不起作用:(.
  • 它工作得很好,但如果我创建一个新的 NavigationPage(detailPage) 的新实例,那么所有样式都会以某种方式被替换......
  • 您能详细介绍一下吗?它不应该改变任何样式。