如何使主页小部件表现得像启动器图标?

时间:2010-01-26 18:48:14

标签: android

我有一个小部件充当主屏幕上的启动器。 如何使其表现得像启动器图标?

我将此布局用于肖像:

<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,小部件是可聚焦的,但点击不起作用。 触摸仍然有效,但窗口小部件不会显示为焦点。

知道我做错了吗?

1 个答案:

答案 0 :(得分:0)

注册点击事件的代码怎么样?你能证明吗?

我没有看到您的RelativeLayout的任何id属性,所以我的尝试是您甚至没有为要处理点击事件的RelativeLayout注册OnClickPendingIntent。也许你已经为ImageView创建了一个intent,它正在接收触摸事件,但不是dpad click事件,因为它的父(RelativeLayout)已请求焦点(并且没有click事件处理程序) )。