我试图在安卓的自定义页面呈现器中,将NavigationBar中的一个NavigationBar从右侧移动到左侧。CropDetailPage是共享代码中的内容页。
[assembly: ExportRenderer(typeof(CropDetailPage),typeof(CropDetailPageRenderer))]
namespace MyApp.Droid
{
public class CropDetailPageRenderer : PageRenderer
{
public CropDetailPageRenderer(Context context)
: base(context)
{
}
protected override void OnElementChanged(ElementChangedEventArgs<Page> e)
{
base.OnElementChanged(e);
if (e.OldElement != null || Element == null)
{
return;
}
var bar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
bar.SetBackgroundColor(Android.Graphics.Color.Azure);
// Only have 1 child
bar.GetChildAt(0).SetX(10);
}
}
}当我试图打开引用页面时,我会得到这个异常
System.Reflection.TargetInvocationException:调用的目标引发了异常。
我尝试过在我的OnElementChanged方法中注释代码,但是异常一直在发生,所以我知道它不是来自逻辑。
而且,这是自定义Toolbar外观的正确方式吗?由于我想把我的按钮向左移动,我只是想改变X coordinate。
对发生了什么事有什么想法吗?
编辑: Xaml for按钮
<ContentPage.ToolbarItems>
<ToolbarItem Text="Back" Command="{Binding GoBackCommand}"></ToolbarItem>
</ContentPage.ToolbarItems>
<ContentPage.Content>
....
</ContentPage.Content>发布于 2018-01-30 02:54:59
我试图把NavigationBar中的按钮从右边移到左边
如果您的Button位于Toolbar.axml中,您可以这样更改Button的位置:
<?xml version="1.0" encoding="utf-8"?>
<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="?attr/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:popupTheme="@style/ThemeOverlay.AppCompat.Light">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<Button
android:text="Button"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
</android.support.v7.widget.Toolbar>更新:
你可以参考我的回答
Herer是一个简单的解决方案,创建一个与Toolbar颜色相同的图片,在我的项目中,我的图片是blue.png:

将其放置在Toolbar的左侧,在图片和ToolbarItem之间添加一些空白的ToolbarItem以调整空间。
<ContentPage.ToolbarItems>
<ToolbarItem Text="Button" Order="Primary" Priority="0"/>
<ToolbarItem Order="Primary" Priority="0" />
<ToolbarItem Order="Primary" Priority="0" />
<ToolbarItem Order="Primary" Priority="0" />
<ToolbarItem Order="Primary" Priority="0" />
<ToolbarItem Order="Primary" Priority="0" />
<ToolbarItem Order="Primary" Priority="0" />
<ToolbarItem Order="Primary" Priority="1" Icon="blue"/>
</ContentPage.ToolbarItems>效果。
更新2:
您可以尝试使用BoxView从博客:表单中的自定义App头,它允许我们很容易地改变高度,图标,字体系列背景梯度的所有内容页面与标题。
https://stackoverflow.com/questions/48500879
复制相似问题