编辑文本 - 专注于触摸



我创建了一个笔记应用程序。 在我的应用程序中创建新笔记时。默认情况下,光标位于标题编辑文本处,但我希望有一个功能,如果我触摸屏幕上的任何地方,光标应该转到描述编辑文本。我将描述编辑文本保存在权重为 1 的单独线性布局中。 请找到图像以获得想法。 在给定的图片中,我想触摸该区域任何地方的蓝线覆盖的区域,我的注意力应该指向编辑我写了提示描述的文本

XML
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/scview"
android:layout_weight="1">
<EditText
android:id="@+id/body_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#000"
android:textSize="18sp"
android:inputType="textMultiLine"
android:hint="Description"
android:backgroundTint="@android:color/transparent"/>.
</LinearLayout>

像这样在xml的父布局上使用onClickListener()

RelativeLayout parentRelativelayout=(RelativeLayout)findViewByRid(R.id.your_parent_layout_in_xml);
EditText edtDescription=(Edittext)findViewByRid(R.id.body_content);
parentRelativelayoutsetOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
edtDescription.requestFocus();
}
});

需要覆盖 dispatchTouchEvent 方法并更改焦点,当用户触摸屏时,调度触摸事件方法将被触发。

@override Boolean dispatchTouchEvent(MotionEvent ev )  {
Toast.makeText(context ,"dispatchTouchEvent", Toast.LENGTH_SHORT).show()
return super.dispatchTouchEvent(ev)
}

最新更新