设置自定义视图不起作用

时间:2017-03-24 13:49:13

标签: forms xamarin xamarin.android

我在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>

0 个答案:

没有答案