如果只设置ImageButton,往往会点击范围比较小,外面套用一层FrameLayout的话可以实现扩大点击按钮的点击范围的效果,但是此时Imagebutton会截取Framelayout的点击时间(ImageButton默认有点击事件)。
<FrameLayout
android:id="@+id/info_area"
android:layout_width="55dp"
android:layout_height="match_parent"
android:layout_gravity="center|left">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center|left"
android:layout_marginLeft="13dp"
android:background="@drawable/btn_info_selector"
android:focusable="true" />
</FrameLayout>
如果把ImageButton修改为ImageView就可以避开点击事件被截取问题。
<FrameLayout
android:id="@+id/info_area"
android:layout_width="55dp"
android:layout_height="match_parent"
android:layout_gravity="center|left">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center|left"
android:layout_marginLeft="13dp"
android:background="@drawable/btn_info_selector"
android:focusable="true" />
</FrameLayout>