【问题标题】:Align ActionBar Title to center Xamarin将 ActionBar 标题与 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>

【问题讨论】:

    标签: android android-activity xamarin android-actionbar xamarin.forms


    【解决方案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 实例。
    猜你喜欢
    • 1970-01-01
    • 2018-04-16
    • 2013-08-27
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多