我正在尝试理解并实现我的Xamarin Android应用的Material Theme。我已阅读this blog post和the Android documentation等资源。但我想我仍然缺少一些重要的东西。
简而言之:我将我的父主题设置为'Theme.AppCompat.Light.DarkActionBar'。所有文本(textview)都是白色的。我希望尽可能地坚持材料设计指南。
值/ styles.xml
<style name="MyTheme" parent="MyTheme.Base">
</style>
<style name="MyTheme.Base" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="android:windowNoTitle">true</item>
<!--We will be using the toolbar so no need to show ActionBar-->
<item name="android:windowActionBar">false</item>
</style>
值-V21
<style name="MyTheme" parent="MyTheme.Base">
<item name="android:windowContentTransitions">true</item>
<item name="android:windowAllowEnterTransitionOverlap">true</item>
<item name="android:windowAllowReturnTransitionOverlap">true</item>
<item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
<item name="android:windowSharedElementExitTransition">@android:transition/move</item>
</style>
的AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="MaterialDesignTest1.MaterialDesignTest1" android:versionCode="1" android:versionName="1.0">
<uses-sdk android:targetSdkVersion="22" android:minSdkVersion="21" />
<application android:label="MaterialDesignTest1" android:theme="@style/MyTheme"></application>
</manifest>
Mainactivity.cs
[Activity(Label = "MaterialDesignTest1", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : FragmentActivity
{
/* Omitted the viewpager & tablayout code */
}
我正在加载到标签中的FilmsFragment.axml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:text="Fragment that shows all Starwars Films information 1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="30dp" />
</LinearLayout>
当我将父级更改为parent="@style/Theme.AppCompat.Light"
或parent="Theme.AppCompat.Light"
时:
将SDK Target设置为23会稍微改变,但仍然是白色字体:
什么属性赋予所有字体白色?为什么?
Xamarin:4.0.0.1717
Xamarin Android:6.0.0.35
所有Xamarin支持包:23.1.1.0
答案 0 :(得分:0)
如果您想为您的应用设置特定颜色,请确保在MyTheme.Base中添加
<!-- Main theme colors -->
<!-- your app branding color for the app bar -->
<item name="android:colorPrimary">@color/primary</item>
<!-- darker variant for the status bar and contextual app bars -->
<item name="android:colorPrimaryDark">@color/primary_dark</item>
<!-- theme UI controls like checkboxes and text fields -->
<item name="android:colorAccent">@color/accent</item>
您也应该使用AppCompatActivity而不是FragmentAcitivty。