相对布局不可点击
Relative Layout not Clickable
下面是我的 xml :
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="horizontal"
android:weightSum="2">
<RelativeLayout
android:clickable="true"
android:id="@+id/rel1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<com.app.thelist.view.CustomButton
android:clickable="false"
android:focusable="false"
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:background="@android:color/transparent"
android:text="btn1"
android:textAllCaps="false"
android:textColor="@color/txt_sub_title"
android:textSize="@dimen/txt_barselection_size"
app:FontEnum="regular" />
<com.app.thelist.view.CustomTextView
android:clickable="false"
android:focusable="false"
android:id="@+id/txt1"
style="@style/RegularFont"
android:layout_centerVertical="true"
android:layout_toRightOf="@id/btn_my_drinks"
android:background="@drawable/border_gry_theme"
android:padding="@dimen/dimen_3"
android:text="00"
android:textColor="@color/txt_sub_title"
android:textSize="@dimen/txt_single_view_font" />
<ImageView
android:id="@+id/iv_bootm_selecter2"
android:layout_width="match_parent"
android:layout_height="7dp"
android:layout_below="@id/btn1"
android:scaleType="fitXY" />
</RelativeLayout>
<RelativeLayout
android:clickable="true"
android:id="@+id/rel1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<com.app.thelist.view.CustomButton
android:clickable="false"
android:focusable="false"
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:background="@android:color/transparent"
android:text="btn1"
android:textAllCaps="false"
android:textColor="@color/txt_sub_title"
android:textSize="@dimen/txt_barselection_size"
app:FontEnum="regular" />
<com.app.thelist.view.CustomTextView
android:clickable="false"
android:focusable="false"
android:id="@+id/txt1"
style="@style/RegularFont"
android:layout_centerVertical="true"
android:layout_toRightOf="@id/btn_my_drinks"
android:background="@drawable/border_gry_theme"
android:padding="@dimen/dimen_3"
android:text="00"
android:textColor="@color/txt_sub_title"
android:textSize="@dimen/txt_single_view_font" />
<ImageView
android:id="@+id/iv_bootm_selecter2"
android:layout_width="match_parent"
android:layout_height="7dp"
android:layout_below="@id/btn1"
android:scaleType="fitXY" />
</RelativeLayout>
</LinearLayout>
我已经完成了 findViewby id 并将点击侦听器添加到相对布局..但它没有采取点击事件..而是在我点击相对布局内的 textview 时生成点击事件。
可能是什么问题?
谢谢。
点击事件从Child传递到parent。如果任何 child 可点击,那么首先 child 获取点击事件,如果 child 不可点击,则点击事件传递给 parent.
如果 parent 想要在 child 之前点击事件,那么它需要覆盖 parent 视图中的 onInterceptTouchEvent(MotionEvent ev);
class。
但如果不想这样做,那么可以采用一个简单的解决方案 child non-clickable。请在您的案例中找到编辑后的 XML 代码。
<RelativeLayout
android:clickable="true"
android:id="@+id/rel1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:focusable="true"
android:focusableInTouchMode="true">
<com.app.thelist.view.CustomButton
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:background="@android:color/transparent"
android:text="btn1"
android:clickable="false"
android:focusable="false"
android:textAllCaps="false"
android:textColor="@color/txt_sub_title"
android:textSize="@dimen/txt_barselection_size"
app:FontEnum="regular" />
<com.app.thelist.view.CustomTextView
android:id="@+id/txt1"
style="@style/RegularFont"
android:layout_centerVertical="true"
android:layout_toRightOf="@id/btn_my_drinks"
android:background="@drawable/border_gry_theme"
android:padding="@dimen/dimen_3"
android:text="00"
android:clickable="false"
android:focusable="false"
android:textColor="@color/txt_sub_title"
android:textSize="@dimen/txt_single_view_font" />
<ImageView
android:id="@+id/iv_bootm_selecter2"
android:layout_width="match_parent"
android:layout_height="7dp"
android:clickable="false"
android:focusable="false"
android:layout_below="@id/btn1"
android:scaleType="fitXY" />
</RelativeLayout>
下面是我的 xml :
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="horizontal"
android:weightSum="2">
<RelativeLayout
android:clickable="true"
android:id="@+id/rel1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<com.app.thelist.view.CustomButton
android:clickable="false"
android:focusable="false"
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:background="@android:color/transparent"
android:text="btn1"
android:textAllCaps="false"
android:textColor="@color/txt_sub_title"
android:textSize="@dimen/txt_barselection_size"
app:FontEnum="regular" />
<com.app.thelist.view.CustomTextView
android:clickable="false"
android:focusable="false"
android:id="@+id/txt1"
style="@style/RegularFont"
android:layout_centerVertical="true"
android:layout_toRightOf="@id/btn_my_drinks"
android:background="@drawable/border_gry_theme"
android:padding="@dimen/dimen_3"
android:text="00"
android:textColor="@color/txt_sub_title"
android:textSize="@dimen/txt_single_view_font" />
<ImageView
android:id="@+id/iv_bootm_selecter2"
android:layout_width="match_parent"
android:layout_height="7dp"
android:layout_below="@id/btn1"
android:scaleType="fitXY" />
</RelativeLayout>
<RelativeLayout
android:clickable="true"
android:id="@+id/rel1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<com.app.thelist.view.CustomButton
android:clickable="false"
android:focusable="false"
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:background="@android:color/transparent"
android:text="btn1"
android:textAllCaps="false"
android:textColor="@color/txt_sub_title"
android:textSize="@dimen/txt_barselection_size"
app:FontEnum="regular" />
<com.app.thelist.view.CustomTextView
android:clickable="false"
android:focusable="false"
android:id="@+id/txt1"
style="@style/RegularFont"
android:layout_centerVertical="true"
android:layout_toRightOf="@id/btn_my_drinks"
android:background="@drawable/border_gry_theme"
android:padding="@dimen/dimen_3"
android:text="00"
android:textColor="@color/txt_sub_title"
android:textSize="@dimen/txt_single_view_font" />
<ImageView
android:id="@+id/iv_bootm_selecter2"
android:layout_width="match_parent"
android:layout_height="7dp"
android:layout_below="@id/btn1"
android:scaleType="fitXY" />
</RelativeLayout>
</LinearLayout>
我已经完成了 findViewby id 并将点击侦听器添加到相对布局..但它没有采取点击事件..而是在我点击相对布局内的 textview 时生成点击事件。
可能是什么问题?
谢谢。
点击事件从Child传递到parent。如果任何 child 可点击,那么首先 child 获取点击事件,如果 child 不可点击,则点击事件传递给 parent.
如果 parent 想要在 child 之前点击事件,那么它需要覆盖 parent 视图中的 onInterceptTouchEvent(MotionEvent ev);
class。
但如果不想这样做,那么可以采用一个简单的解决方案 child non-clickable。请在您的案例中找到编辑后的 XML 代码。
<RelativeLayout
android:clickable="true"
android:id="@+id/rel1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:focusable="true"
android:focusableInTouchMode="true">
<com.app.thelist.view.CustomButton
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:background="@android:color/transparent"
android:text="btn1"
android:clickable="false"
android:focusable="false"
android:textAllCaps="false"
android:textColor="@color/txt_sub_title"
android:textSize="@dimen/txt_barselection_size"
app:FontEnum="regular" />
<com.app.thelist.view.CustomTextView
android:id="@+id/txt1"
style="@style/RegularFont"
android:layout_centerVertical="true"
android:layout_toRightOf="@id/btn_my_drinks"
android:background="@drawable/border_gry_theme"
android:padding="@dimen/dimen_3"
android:text="00"
android:clickable="false"
android:focusable="false"
android:textColor="@color/txt_sub_title"
android:textSize="@dimen/txt_single_view_font" />
<ImageView
android:id="@+id/iv_bootm_selecter2"
android:layout_width="match_parent"
android:layout_height="7dp"
android:clickable="false"
android:focusable="false"
android:layout_below="@id/btn1"
android:scaleType="fitXY" />
</RelativeLayout>