我有GridAdapter
里面有几个项目。
我将选择器设置为:
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@integer/default_fade_duration">
<item android:state_enabled="false">
<shape>
<solid
android:color="@color/greyDark" />
</shape>
</item>
<item android:state_pressed="true">
<shape>
<solid
android:color="@color/grey" />
</shape>
</item>
<item>
<shape>
<solid
android:color="@color/transparent" />
</shape>
</item>
</selector>
这就是我在布局中使用它的方式:
<SquareLinearLayout
...
android:background="@drawable/button_transparent_grey">
<ImageView/>
<TextView/>
</SquareLinearLayout>
我在适配器中的getView
内使用它:
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
intf.onMenuClick(position, icon);
}
});
但每次我打开任何具有该网格菜单的活动时,默认情况下,这些项目都处于disabled
状态,即使它实际已启用。
当我触摸它时,它像往常一样进入按下状态,然后如果我拖动并释放我的手指在该视图之外(取消我的按下),它将进入默认状态。
我想要的是默认情况下它会转到normal
状态,如果它实际上被禁用则会disabled
。