现在我已经单击了一个微调框,并且显示了DropDownView,我想在微调框之外单击并执行某些操作。
如何收听微调器之外的此点击事件?
我尝试了一些方法(例如Activity的覆盖dispatchTouchEvent()
)来解决此问题,但是我发现在显示DropDownView时无法执行方法dispatchTouchEvent()
:
//Kotlin
override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
//do something I want
return super.dispatchTouchEvent(ev)
}
答案 0 :(得分:0)
微调器的用户自定义对话框,使外部单击成为dialog.setCancelable(true)。
final Dialog dialog = new Dialog(activity);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setCancelable(true);
dialog.setContentView(R.layout.dialog);
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="80dp"
android:background="#3E80B4"
android:orientation="vertical" >
<TextView
android:id="@+id/txt_dia"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="10dp"
android:text="This is spinner"
android:textColor="@android:color/white"
android:textSize="15dp"
android:textStyle="bold"/>
<Spinner
android:id="@+id/size_spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/size_entries" />
</LinearLayout>