当我在我的 MVVMCross 应用程序上安装 BugSense 包时,我遇到了一个非常奇怪的情况。每次我在 EditText 中键入一个字母时,光标都会移动到第一个字符。这非常烦人,因为我必须将箭头移到字段的末尾才能输入下一个字符!
我所做的是覆盖我的 SplashScreenView 的“OnCreate”我设置了这个:
protected override void OnCreate(Bundle bundle)
{
BugSenseHandler.Instance.InitAndStartSession(new ExceptionManager(), ApplicationContext, "xxxxxxxx");
base.OnCreate(bundle);
}
当我的启动画面消失时,它会移动到我的 LoginViewModel。我的登录视图的 axml 如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/white_full_box">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerHorizontal="false"
android:layout_centerInParent="true"
android:layout_marginBottom="@dimen/table_margin"
android:layout_marginLeft="@dimen/table_margin"
android:layout_marginTop="@dimen/dialog_margin"
android:padding="@dimen/zero"
android:background="@drawable/white_full_box">
<EditText
android:id="@+id/username"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/password"
android:layout_centerHorizontal="true"
android:layout_marginBottom="40dp"
android:ems="10"
android:hint="username"
android:layout_marginLeft="@dimen/table_margin"
android:inputType="textVisiblePassword"
android:singleLine="true"
local:MvxBind="Text UserName">
<requestFocus />
</EditText>
<EditText
android:id="@+id/password"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:ems="10"
android:hint="password"
android:layout_marginLeft="@dimen/table_margin"
android:inputType="textPassword"
local:MvxBind="Text Password" />
<Button
android:id="@+id/loginButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/password"
android:layout_centerHorizontal="true"
android:layout_marginTop="40dp"
android:layout_marginRight="@dimen/dialog_margin"
android:text="Login"
style="@style/ButtonStyle"
local:MvxBind="Click LoginCommand" />
</RelativeLayout>
</RelativeLayout>
而且我只有普通属性绑定到视图模型中的用户名、密码和登录按钮。我做了几件事来验证这种行为:
1.)我留下了错误感知初始化代码并从用户名中删除了文本绑定。在这种情况下,用户名将正常运行,但密码字段将始终将字符移动到每个文本输入后的第一个字符。
2.) 我重新实现了文本绑定到用户名字段,然后注释掉了 BugSense 初始化代码,一切似乎又可以正常工作了。
这里发生了什么?我应该在哪里进行 MVVMCross 应用程序中的 BugSense 初始化?