我有一个小部件充当主屏幕上的启动器。 如何使其表现得像启动器图标?
我将此布局用于肖像:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:background="@drawable/widget_background_selector"
android:focusable="true"
android:layout_width="74dip"
android:layout_height="79dip"
android:layout_marginLeft="3dip"
android:layout_marginTop="14dip">
<ImageView android:id="@android:id/background"
android:layout_width="72dip"
android:layout_height="72dip"
android:layout_marginLeft="1dip"
android:layout_marginTop="4dip" />
</RelativeLayout>
</RelativeLayout>
这是后台选择器:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/widget_background_pressed" />
<item android:state_window_focused="true" android:state_focused="true" android:drawable="@drawable/widget_background_focused" />
<item android:state_window_focused="false" android:state_focused="true" android:drawable="@android:color/transparent" />
</selector>
这样,如果我使用DPAD,小部件是可聚焦的,但点击不起作用。 触摸仍然有效,但窗口小部件不会显示为焦点。
知道我做错了吗?
答案 0 :(得分:0)
注册点击事件的代码怎么样?你能证明吗?
我没有看到您的RelativeLayout的任何id属性,所以我的尝试是您甚至没有为要处理点击事件的RelativeLayout注册OnClickPendingIntent。也许你已经为ImageView创建了一个intent,它正在接收触摸事件,但不是dpad click事件,因为它的父(RelativeLayout)已请求焦点(并且没有click事件处理程序) )。