首页 > 解决方案 > onClickListener 不同的事件,无论是文本还是开关被点击

问题描述

在其中一个屏幕中,用户必须接受条款。
如果他点击开关按钮,则条款被接受。但是,如果他单击按钮左侧的文本,我实际上只想显示条款(为此我有一个 BottomSheet 行为),而没有激活开关。
所以这个问题有点傻,但我实际上不知道如何定位开关内的文本。

<Switch
                android:id="@+id/some_id"
                style="@style/Body"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginStart="@dimen/some_resource1"
                android:layout_marginTop="@dimen/some_resource2"
                android:layout_marginEnd="@dimen/some_resource2"
                android:layout_marginBottom="@dimen/some_resource1"
                android:text="@dimen/some_text_resource"
                app:layout_constraintTop_toBottomOf="@+id/some__different_id" />

此 ofc 针对整个交换机:

some_id.setOnClickListener {
            myBtmSheetBhvrMethod(SomeFragment())
        }

所以我想要的是类似some_id.text.setOnClickerListener 或在点击事件期间获得点击的确切内容,但由于文本没有 id 我不知道如何实现这一点

标签: androidkotlin

解决方案


开关上的文字将其表示为开关标签。
对于您的用例,更好的方法是将切换文本设置为空字符串,并使用文本视图或按钮来显示条款和条件文本。


推荐阅读