在Xamarin PCL项目中隐藏Android Action Bar

时间:2014-07-12 10:05:43

标签: mono android-actionbar xamarin xamarin.forms

如何在Xamarin Forms项目中更改Android应用程序的所有页面中ActionBar的可见性。我在主要活动中使用了ActionBar.Hide(),但它只在头版中隐藏了它。

namespace ParsellIT.Droid
{
    [Activity(Label = "ParsellIT", MainLauncher = true)]
    public class MainActivity : AndroidActivity
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            Xamarin.Forms.Forms.Init(this, bundle);            
            SetPage(App.GetMainPage());
            ActionBar.Hide();    
        }
    }
}

我想在每个页面中隐藏它,但我无法访问Android特定代码中的每个页面,因为它们是在PCL中构建的。有没有办法这样做?

2 个答案:

答案 0 :(得分:3)

更好的选择是致电:

$ ./yourscript
line: CREATE TABLE mytablename(
matches!
line: CREATE TABLE mytablename(
matches!

global::Xamarin.Forms.Forms.SetTitleBarVisibility(Xamarin.Forms.AndroidTitleBarVisibility.Never)

或在xaml

var page = App.GetMainPage();
Xamarin.Forms.NavigationPage.SetHasNavigationBar(page, true)

答案 1 :(得分:1)

您应该在应用中使用没有操作栏的主题。例如,您可以在应用程序中指定应用程序属性:

[assembly: Application(Icon = "@drawable/Icon" Theme = "@android:Theme.Holo.Light.NoActionBar")]

或者您可以在AndroidManifaset.xml中设置它

<application android:theme="@android:style/Theme.Holo.Light.NoActionBar" />

<强> UPD 当然主题设置必须在Android项目中完成,但即使在PCL中它也会影响每个页面。