在EditText上滚动以查看其所有内容时,将触发Click事件(Xamarin.Android)

时间:2019-05-10 08:30:17

标签: xamarin.android android-edittext click

当我滚动EditText以查看其内容时,如果它太长,则会触发其click事件。我该如何预防? EditText是不可编辑的。

这是我的activity

public class MainActivity : AppCompatActivity, View.IOnTouchListener
{
    EditText et;
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        SetContentView(Resource.Layout.activity_main);

        et = FindViewById<EditText>(Resource.Id.editText1);
        et.SetOnTouchListener(this);
        et.Click += delegate { this.OnClicking(); };
    }

    private void OnClicking()
    {
        //Show alert dialog
    }

    public bool OnTouch(View v, MotionEvent e)
    {
        v.OnTouchEvent(e);
        var imm = (Android.Views.InputMethods.InputMethodManager)v.Context.GetSystemService("input_method");
        imm?.HideSoftInputFromWindow(v.WindowToken, Android.Views.InputMethods.HideSoftInputFlags.None);
        return true;
    }

}

这是我的axml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <EditText
        android:text="Very long text Very long text Very long text Very long text Very long text "
        android:layout_width="300dp"
        android:focusable="false"
        android:clickable="true"
        android:singleLine="true"
        android:layout_height="wrap_content"
        android:minWidth="25px"
        android:minHeight="25px"
        android:id="@+id/editText1" />
</LinearLayout>

0 个答案:

没有答案