当我在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>
我只有普通的属性绑定到视图模型中的Username Password和Login按钮。我做了几件事来验证这个行为:
1)。我留下了bugsense初始化代码,并从用户名中删除了Text绑定。在这种情况下,用户名将正常运行,但密码字段将始终将字符移动到每个文本输入后的第一个字符。
2)。我重新实现了文本绑定到用户名字段,然后注释掉了BugSense初始化代码,一切似乎又正常工作了。
这是怎么回事?我应该在哪里做一个MVVMCross应用程序的bug感知初始化?
我的解决方案是切换到Raygun。
Bugsense似乎正在调查这个问题,你可以跟随这里