android 替代布局,但仍可以区分空间和面积

b5lpy0ml  于 2023-03-21  发布在  Android
关注(0)|答案(1)|浏览(99)

总之我想尝试一些新的设计在我的脑海中,其中之一是一个按钮,被分成两个部分的对角线。当然,每一方将有不同的使命。

我成功地分离了按钮点击的方式,我认为它是与一点点向量和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>
0pizxfdo

0pizxfdo1#

视图是矩形的-即使你只在一个三角形内画一个三角形,触摸区域也是视图本身的整个区域。你可以调整实际的触摸目标,但它仍然是矩形形状。
您最好创建自己的自定义视图,允许您显示两种图标/颜色,并计算当单击事件发生在视图内的 (x,y) 时,哪一侧应被视为“单击”。
更多信息herehere

相关问题