总之我想尝试一些新的设计在我的脑海中,其中之一是一个按钮,被分成两个部分的对角线。当然,每一方将有不同的使命。
我成功地分离了按钮点击的方式,我认为它是与一点点向量和pathData。但问题也来自这里,为了让两个按钮感觉像他们绑在一起,我不得不使用FrameLayout,也因为这,它是插入布局对方,导致只有1个任务被执行时,按下。
所以我想问大家,在这种情况下我应该怎么做,请大家给我指出如何解决这个问题的方向。
P/s此按钮将在recyclerView的视图夹中使用,因此使用用户指针的固定位置不太可行。
这里是我XML代码
<FrameLayout
android:layout_width="100dp"
android:layout_height="match_parent"
android:layout_gravity="end">
<ImageView
android:id="@+id/admin_del"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:backgroundTint="@null"
android:src="@drawable/baseline_delete_forever_24"
android:paddingStart="55dp"
android:paddingTop="35dp"
android:background="@drawable/right_triangle"/>
<ImageView
android:id="@+id/admin_edit"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:backgroundTint="@null"
android:src="@drawable/baseline_edit_calendar_24"
android:paddingEnd="55dp"
android:paddingBottom="35dp"
android:background="@drawable/left_triangle"/>
</FrameLayout>
这里有两个可绘制的XML三角形,我用它作为图像背景
直角三角形
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="100dp"
android:width="100dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path android:fillColor="#673AB7" android:pathData="M0,24H24L24,0" />
</vector>
左_三角形
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="100dp"
android:width="100dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path android:fillColor="#3F51B5" android:pathData="M0,0H24L0,24" />
</vector>
1条答案
按热度按时间0pizxfdo1#
视图是矩形的-即使你只在一个三角形内画一个三角形,触摸区域也是视图本身的整个区域。你可以调整实际的触摸目标,但它仍然是矩形形状。
您最好创建自己的自定义视图,允许您显示两种图标/颜色,并计算当单击事件发生在视图内的 (x,y) 时,哪一侧应被视为“单击”。
更多信息here和here