我只是想知道我们可以在textview上的setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom)
上获得两个不同的onclick事件。
首先onclick textview和其他drawable或者我可以onclick只是drawable而不是textview。任何帮助将不胜感激。谢谢。
答案 0 :(得分:4)
我是通过自己听点击事件来实现的。如下所示:
lTextView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP && event.getX() < dpTopx(MainActivity.this, 19) )
{
Log.v("Click", "Clicked on back button");
}
return true;
}
});
其中dpToPx只是将dp转换为像素的函数。所以现在左边的19-dp区域(包含左侧可绘制区域)是可点击的。
答案 1 :(得分:2)
答案 2 :(得分:1)
事件只获得资源ID。所以对象只有一个Id。所以只有一个onClick事件可以监听。 您可以通过将此textView包装在父布局
中来实现此目的答案 3 :(得分:0)
我更喜欢使用图片视图和textview或编辑视图的布局
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="10dp"
android:background="@drawable/black_border"
android:orientation="horizontal"
android:weightSum="3">
<ImageView
android:id="@+id/rdv_location_icon"
android:layout_width="0dp"
android:layout_weight="0.5"
android:layout_gravity="center"
android:background="@android:color/white"
android:src="@drawable/icon_location_et"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/textView4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2.5"
android:gravity="center"
android:lines="3"
android:text="Address"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>