我在xamrin.forms&中有一个包含多个页面的项目。我为android
中的原生布局设置了自己的动作栏工具栏在某些页面中 - 让我们将其称为第3页 - 我想要使用差异视图更改操作栏,我为第3页设置自定义报告页面以设置操作栏的自定义视图,但它无法正常工作
我从FormsAppCompatActivity继承我的MainActivity,所以我尝试从那里获取动作栏
这是我的代码:
protected override void OnElementChanged(ElementChangedEventArgs<Page> e)
{
base.OnElementChanged(e);
var context = ((FormsAppCompatActivity)Forms.Context);
var actionBar = context.SupportActionBar;
actionBar.SetCustomView(Resource.Layout.toolbar2);
}
但是当我切换到第3页
时,没有任何东西被添加到操作栏这是我的主题:
<style name="MyTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
<!--If you are using revision 22.1 please use just windowNoTitle. Without android:-->
<item name="windowNoTitle">false</item>
<!--We will be using the toolbar so no need to show ActionBar-->
<item name="windowActionBar">true</item>
<!-- Set theme colors from http://www.google.com/design/spec/style/color.html#color-color-palette-->
<!-- colorPrimary is used for the default action bar background -->
<item name="colorPrimary">#2196F3</item>
<!-- colorPrimaryDark is used for the status bar -->
<item name="colorPrimaryDark">#1976D2</item>
<!-- colorAccent is used as the default value for colorControlActivated
which is used to tint widgets -->
<item name="colorAccent">#FF4081</item>
<!-- You can also set colorControlNormal, colorControlActivated
colorControlHighlight and colorSwitchThumbNormal. -->
<item name="windowActionModeOverlay">true</item>
<item name="android:datePickerDialogTheme">@style/AppCompatDialogStyle</item>
</style>
任何帮助??
编辑:
这里是完整的报告者 - MyPage是第3页的内容页面:
using Android.App;
using Android.Graphics.Drawables;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
using asap.Droid;
using asap;
using Android.Views;
using Android.Support.V7.App;
[assembly: ExportRenderer(typeof(MyPage), typeof(NavRen))]
namespace asap.Droid
{
public class NavRen : PageRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Page> e)
{
base.OnElementChanged(e);
var context = ((FormsAppCompatActivity)Forms.Context);
var actionBar = context.SupportActionBar;
actionBar.SetCustomView(Resource.Layout.toolbar2);
}
}
}
这是我的自定义布局,名为tollbar2:
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/black"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:popupTheme="@style/ThemeOverlay.AppCompat.Light">
</android.support.v7.widget.Toolbar>
这是我的默认工具栏
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/black"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:popupTheme="@style/ThemeOverlay.AppCompat.Light">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="50dp">
<ImageView
android:id="@+id/TitleText"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:src="@drawable/title_logo" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="15dp"
android:layout_height="15dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="5dp"
android:src="@drawable/Title_Sub_Icon" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="5dp"
android:src="@drawable/Carele" />
</RelativeLayout>
</android.support.v7.widget.Toolbar>