【发布时间】:2020-01-15 10:29:24
【问题描述】:
我有一个带有 Switch 和 TextView 子小部件的自定义 LinearLayout。我希望能够点击LinearLayout覆盖的区域,所以我将clickable=true设置为LinearLayout,但是Switch没有被触发。
我想在点击LinearLayout 时触发Switch。
我还尝试在Switch 中使用android:duplicateParentState="true",但没有成功。
我可以通过XML 实现这一点吗?
<LinearLayout
android:background="@drawable/ripple"
android:clickable="true"
android:focusable="true"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Switch
android:clickable="false"
android:paddingTop="8dp"
android:text="Visibility"
android:textSize="16sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:clickable="false"
android:layout_marginRight="58dp"
android:maxLines="3"
android:text="@string/visibility_desc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="58dp" />
</LinearLayout>
【问题讨论】:
-
你必须实现
OnClickListener并在那里改变状态 -
@Md.Asaduzzaman 不,我想通过 xml 实现这一点,因为
Switch切换没有任何监听器 -
当你点击线性布局时你已经改变了 Switch 状态 aSwitch.setChecked(true);//
-
@ThavaSelvan 你的回答是适用的。
-
@ThavaSelvan 我想从
XML实现
标签: android android-layout android-switch