在Xamarin.Android中隐藏标题栏

时间:2019-04-04 15:47:54

标签: c# android xamarin xamarin.android

我刚开始使用Xamarin。即使在VS 2019中,也花了一天的时间解决愚蠢的调试问题。无论如何,我想所有阅读这篇文章的Xamarin开发人员都已经知道ar $ e Xamarin有多痛苦。

无论如何,在我的Xmarin.Android(空白)项目中,我正在尝试删除标题为应用程序/项目名称的标题栏(我想是的)。所以,这就是我在说的:

App Header

请注意:

  

在我继续尝试之前,我必须补充一点,所有解决方案都是从Xamarin.Forms相关文章/论坛中找到的。我非常困惑,是否选择Xamarin.Android做出了错误的选择,因为它几乎没有支持。

到目前为止我尝试过的事情:

  • 在AndroidManifest.xml中添加了android:theme="@android:style/Theme.NoTitleBar"

  • 在调用RequestWindowFeature(WindowFeatures.NoTitle);之前,在MainActivity.cs方法内的OnCreate中添加了base.OnCreate

结果保持不变。标题栏始终存在。但是,这是Xamarin的另一个神秘的 bug (啊,没什么新鲜的,对吧?)

从设计者的顶部栏中更改主题时:

Top Bar

更改反映在设计器中。我的意思是,如果我将主题更改为Black NoTitleBar,标题栏就会消失。但是,一旦我启动该应用程序,标题栏就会在模拟器 以及设计器中弹出。

是这样吗?是否有Xamarin.Android个特定的解决方案?还是我选择Xamarin.Android真的很糟糕,因为它缺乏支持论坛?

编辑1

当我手动更改清单文件并设置android:theme="@android:style/Theme.NoTitleBar"时,然后从设计者中,我将主题更改为AppDefault,清单文件似乎保持不变。我的意思是清单文件中声明的主题仍然为Theme.NoTitleBar

这就是Activity属性的样子:

[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]

AppTheme更改为Theme.NoTitleBar会引发运行时异常,提示No resource found with the given name (Theme.NoTitleBar).......

3 个答案:

答案 0 :(得分:0)

嗯,那毕竟是单行修复吗?

任何在此问题上苦苦挣扎的人:活动类MainActivity.cs中的以下更改解决了该问题:

[Activity(Label = "@string/app_name", Theme = "@style/Theme.AppCompat.Light.NoActionBar", MainLauncher = true)]

我猜你也可以设置其他主题。毕竟,您是UI的主人!

答案 1 :(得分:0)

有两种方法可以隐藏Xamarin.Android中的标题栏。 Aousaf Rashid已经使用样式提到了一个 另一个简单的方法是:

ActionBar.Hide();

在活动中的oncreate方法中

答案 2 :(得分:0)

[活动(标签=“ @ string / app_name”,主题=“ @ style / AppTheme”,MainLauncher = true)]

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

这对我有用