将 ActionBar 标题与 Xamarin 中心对齐
Posted
技术标签:
【中文标题】将 ActionBar 标题与 Xamarin 中心对齐【英文标题】:Align ActionBar Title to center Xamarin 【发布时间】:2016-03-16 11:37:07 【问题描述】:我正在使用 Xamarin Forms,我删除了我的图标,现在我想将操作栏标题放在中心,实际上它在左侧。
我看到一些页面说我使用 getSupportActionBar()
,但这在我的 Visual Studio 中找不到,我正在尝试在我的 Style.xml 或我的 MainActivity 上删除它。
MainActivity.XML
using System;
using android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
namespace App5.Droid
[Activity(Label = "App5", Icon = "@drawable/icon", Theme = "@style/CustomActionBarTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
protected override void OnCreate(Bundle bundle)
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
ActionBar.SetIcon(Android.Resource.Color.Transparent);
LoadApplication(new App());
样式.xml:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBar"
parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">#000000</item>
</style>
</resources>
【问题讨论】:
【参考方案1】:使用Xamarin
,唯一的方法是编程:
LinearLayout lLayout = new LinearLayout(activity);
lLayout .SetGravity(GravityFlags.CenterVertical);
lLayout .LayoutParams textViewParameters =
new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.MatchParent);
textViewParameters.RightMargin = (int)(30 * activity.Resources.DisplayMetrics.Density);
TextView myTitle = new TextView(activity);
myTitle.Text = text;
myTitle.Gravity = GravityFlags.Center;
lLayout.AddView(myTitle ,textViewParameters);
ActionBar.LayoutParams actionbarParams = new ActionBar.LayoutParams(ActionBar.LayoutParams.MatchParent,ActionBar.LayoutParams.MatchParent);
activity.ActionBar.SetCustomView(lLayout, actionbarParams);
【讨论】:
On 'new LinearLayout(activity);" 我没有创建活动,我正在使用上面代码中发送的 MainActivity,那么如何在 MainActivity 上定义活动?正在使用 MasterDetailPage 嗨 Fred,var activity = Activity; "CS0119 'Activity' 是一种类型,在给定的上下文中无效" 使用时出现错误:var activity = Activity; 我使用了 'Activity 活动 = new Activity();但现在错误是:“CS0118 'lLayout' 是一个变量,但用作类型” NO!,不要创建新实例,使用当前的 Activity 实例。以上是关于将 ActionBar 标题与 Xamarin 中心对齐的主要内容,如果未能解决你的问题,请参考以下文章
使用 Xamarin Studio 将 Lollipop Toolbar 添加到我的项目