我正在处理一个片段,当用户点击该片段的某个区域时,我需要打开另一个片段。打开活动的部分已经处理好了,但我真的不知道如何检测碎片某个区域的触摸,特别是因为它不是相对于屏幕的矩形,它必须是相对于它的片段因为你可以上下滚动片段。
该片段的区域背后有一些东西,比如说一个imageView和一个textView,它可能会在某些时刻发生变化。我不想单击TextView或ImageView并转到相同的意图来打开活动,我希望整个区域都是可点击的。
我想到的一件事是在相对布局中设置那些区域后面的那些“东西”并以某种方式使相对布局可触摸,或者检测到布局任何部分的触摸,我真的不知道怎么从这里开始。任何帮助都会非常有用。
以下是我需要https://i.imgur.com/kmZ6R0H.jpg
的示例<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="5dp"
android:paddingRight="5dp"
tools:context="com.example.roo.proyi.alarm_fragment"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="70dp"
android:includeFontPadding="false"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="08:00"
android:textSize="70dp"
android:id="@+id/time_view"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/vertical_separator"
android:layout_toStartOf="@+id/vertical_separator" />
<TextView
android:layout_width="30dp"
android:layout_height="wrap_content"
android:text="S"
android:textSize="30dp"
android:textColor="#FFFFFF"
android:id="@+id/check_sunday"
android:gravity="center_horizontal"
android:clickable="true"
android:onClick=""
android:layout_below="@+id/time_view"
android:layout_alignLeft="@+id/time_view"
android:layout_alignStart="@+id/time_view" />
<TextView
android:layout_width="30dp"
android:layout_height="wrap_content"
android:text="M"
android:layout_alignLeft="@id/check_sunday"
android:layout_marginLeft="26dp"
android:textSize="30dp"
android:textColor="#FFFFFF"
android:id="@+id/check_monday"
android:layout_alignTop="@+id/check_sunday"
android:layout_toRightOf="@+id/check_sunday"
android:gravity="center_horizontal"
android:clickable="true"
/>
<TextView
android:layout_width="30dp"
android:layout_height="wrap_content"
android:text="T"
android:layout_alignLeft="@id/check_monday"
android:layout_marginLeft="25dp"
android:textSize="30dp"
android:textColor="#FFFFFF"
android:id="@+id/check_tuesday"
android:layout_alignTop="@+id/check_sunday"
android:layout_toRightOf="@+id/check_monday"
android:gravity="center_horizontal"
android:clickable="true"
/>
<TextView
android:layout_width="30dp"
android:layout_height="wrap_content"
android:text="W"
android:layout_alignLeft="@id/check_tuesday"
android:layout_marginLeft="28dp"
android:textSize="30dp"
android:textColor="#FFFFFF"
android:id="@+id/check_wednesday"
android:layout_alignTop="@+id/check_sunday"
android:layout_toRightOf="@+id/check_monday"
android:gravity="center_horizontal"
android:clickable="true"
/>
<TextView
android:layout_width="30dp"
android:layout_height="wrap_content"
android:text="T"
android:layout_alignLeft="@id/check_wednesday"
android:layout_marginLeft="26dp"
android:textSize="30dp"
android:textColor="#FFFFFF"
android:id="@+id/check_thursday"
android:layout_alignTop="@+id/check_sunday"
android:layout_toRightOf="@+id/check_monday"
android:gravity="center_horizontal"
android:clickable="true"
/>
<TextView
android:layout_width="30dp"
android:layout_height="wrap_content"
android:text="F"
android:layout_alignLeft="@id/check_thursday"
android:layout_marginLeft="20dp"
android:textSize="30dp"
android:textColor="#FFFFFF"
android:id="@+id/check_friday"
android:layout_alignTop="@+id/check_sunday"
android:layout_toRightOf="@+id/check_monday"
android:gravity="center_horizontal"
android:clickable="true"
/>
<TextView
android:layout_width="30dp"
android:layout_height="wrap_content"
android:text="S"
android:layout_alignLeft="@id/check_friday"
android:layout_marginLeft="21dp"
android:textSize="30dp"
android:textColor="#FFFFFF"
android:id="@+id/check_saturday"
android:layout_alignTop="@+id/check_sunday"
android:layout_toRightOf="@+id/check_monday"
android:gravity="center_horizontal"
android:clickable="true"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="80dp"
android:id="@+id/vertical_separator"
android:src="@drawable/imageview_vertical_separator"
android:layout_centerVertical="true"
android:layout_marginRight="7dp"
android:layout_marginLeft="7dp"
android:layout_toLeftOf="@+id/image_bed"
android:layout_toStartOf="@+id/image_bed" />
<ImageView
android:layout_width="60dp"
android:layout_height="60dp"
android:id="@+id/image_bed"
android:src="@drawable/imageview_bed"
android:tint="@android:color/white"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/sleep_amount"
android:layout_toStartOf="@+id/sleep_amount" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="2"
android:textSize="45dp"
android:id="@+id/sleep_amount"
android:layout_alignBottom="@+id/image_bed"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:layout_alignParentEnd="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textSize="17dp"
android:text="10"
android:id="@+id/sleep_time"
android:layout_marginTop="7dp"
android:layout_below="@+id/image_bed"
android:layout_alignLeft="@+id/image_bed"
android:layout_alignStart="@+id/image_bed" />
<TextView
android:layout_width="wrap_content"
android:textSize="17dp"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Minutes"
android:id="@+id/minutes"
android:layout_alignTop="@id/sleep_time"
android:layout_below="@+id/sleep_amount"
android:layout_alignRight="@+id/sleep_amount"
android:layout_alignEnd="@+id/sleep_amount" />
<Button
android:layout_width="50dp"
android:layout_height="52dp"
android:background="@drawable/button_toggle_alarm_switch_on"
android:id="@+id/button_alarm_onoff"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:layout_toLeftOf="@+id/time_view" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alpha="0"
android:id="@+id/settings_region"
android:layout_alignParentTop="true"
android:layout_alignBottom="@+id/check_saturday"
android:layout_alignParentRight="true"
android:layout_alignLeft="@+id/vertical_separator" />
答案 0 :(得分:0)
您可以将TextView和ImageView包装在布局中(在片段xml中),然后在整个布局上设置OnClick或OnTouch Listener。
答案 1 :(得分:0)
您可以添加 LinearLayout或其他一些布局来覆盖您想要可点击的区域。您可以将布局的可点击属性设置为true,并为布局添加动作侦听器。