通过 Xamarin 中的新活动加载时布局不显示内容
Posted
技术标签:
【中文标题】通过 Xamarin 中的新活动加载时布局不显示内容【英文标题】:Layout not displaying content when loaded through new activity in Xamarin 【发布时间】:2013-03-05 10:53:12 【问题描述】:我正在使用 Xamarin 开发应用程序。
我有三个活动,DiallerActivity、ContactsActivity 和 SplashActivity - 以及两个 .axml 布局,Main.axml 和 Contacts.axml
SplashActivity 是第一个加载的,它在打开应用程序时显示启动画面,完成后它会加载显示我的 Main.axmlDiallerActivity strong> 布局 - 这很好用。
在我的 Main.axml 布局中,我有一个按钮,单击该按钮会加载 ContactsActivity,然后应该加载 Contacts.axml里面有 3 个按钮和一个标签.. 没有一个被编程来做任何事情。
问题是,当单击按钮时,显示变为空白屏幕,仍然在屏幕顶部显示 android 栏.. 它只是不显示 .axml 文件中的任何内容。
我需要在 Activity 运行时显示 Contacts.axml 布局。我希望我已经说清楚了。我当前的代码如下。
DiallerActivity 代码
protected override void OnCreate (Bundle bundle)
base.OnCreate (bundle);
// Set our view from the "main" layout resource
SetContentView (Resource.Layout.Main);
Button btnAcceptClick = FindViewById<Button> (Resource.Id.btnAccept);
btnAcceptClick.Click += delegate
StartActivity (typeof(VoWiFiApplicationFinal.ContactsActivity));
;
ContactsActivity 代码
public class ContactsActivity : Activity
protected override void OnCreate (Bundle bundle)
base.OnCreate (bundle);
// setting the contacts.axml as the view
SetContentView (Resource.Layout.Contacts);
有人知道为什么没有显示 Contacts.axml 吗?如果您需要我提供更多信息,请直接说,我会提供给您。顺便说一下,我使用 C# 作为我的语言,所以我更希望获得与此相关的帮助适用于心目中的问题。感谢阅读。
Contacts.xaml 代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:orientation="vertical">
<LinearLayout
android:layout_
android:id="@+id/toptest"
android:layout_
android:orientation="horizontal">
<TextView
android:layout_
android:layout_
android:id="@+/label1"
android:text="testlabel" />
</LinearLayout>
<LinearLayout
android:layout_
android:id="@+id/testagain"
android:layout_
android:orientation="horizontal" />
<LinearLayout
android:layout_
android:id="@+id/menuBar"
android:layout_
android:orientation="horizontal">
<Button
android:layout_
android:text="ACCEPT"
android:id="@+id/btnAccep"
android:layout_
android:layout_weight="1" />
<Button
android:layout_
android:layout_
android:id="@+id/btnDeclin"
android:layout_weight="1"
android:text="DECLINE" />
<Button
android:layout_
android:layout_
android:id="@+id/btntes"
android:layout_weight="1"
android:text="TEST" />
</LinearLayout>
</LinearLayout>
【问题讨论】:
您可以发布您的联系人布局吗?如果您从一开始就使用(例如在拨号器活动中,它是否有效?) 我得到了完全相同的东西;我的第二个活动的 OnCreate 正在触发并且对 SetContentView 的调用不会引发任何异常,但是即使我的 .axml 中有(显然有效的)标记,我也会得到一个空白显示? 对此有何更新?我现在也遇到了 这种情况仍在发生,让我抓狂 【参考方案1】:Xamarin 中的某个地方似乎存在错误。当我来回重命名 .axml 文件并尝试使用 values\strings.xml 中的字符串时,我也得到了一个空白屏幕(操作栏除外),有时将它们命名为与 .axml 文件相同的名称。虽然不确定字符串是否与它有关,但我记得在编译时遇到了某种错误。
无论如何,我的解决方案是
-
备份 .axml 文件的内容并完全删除该文件。
使用与原始名称不同的名称创建一个新的 .axml 文件。
将备份的内容粘贴到新文件中。
将新文件重命名为旧名称。
之后我进行了一次测试,一切都恢复正常了。
【讨论】:
以上是关于通过 Xamarin 中的新活动加载时布局不显示内容的主要内容,如果未能解决你的问题,请参考以下文章
如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用
App Center 应用内更新未显示在 Xamarin Android 应用中