Visualização verificável personalizada que responde ao seletor

Eu tenho um grupo deFrameLayout que eu quero ser verificável / selecionável,

Ou seja, depois de um clique, eu gostaria que oFrameLayout para exibir comochecked - quando pressionado novamente, eu gostaria que ele se tornassechecked. Além do mais, eu quero que este visual seja descrito como de costume através do uso de um<selector>.

Eu não consigo fazer isso funcionar - não tenho certeza do que estou perdendo:

public class CheckableFrameLayout extends FrameLayout implements Checkable {
    private boolean mChecked = false;
    public CheckableFrameLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public void setChecked(boolean checked) {
        mChecked = checked;
        refreshDrawableState();
    }

    public boolean isChecked() {
        return mChecked;
    }

    public void toggle() {
        setChecked(!mChecked);
    }
}

O layout doCheckableFrameLayout:

<com.test.view.CheckableFrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/selector_horizontal"
    android:clickable="true" >

O seletor que o suporta (selector_horizontal.xml):

<item android:drawable="@drawable/selector_vertical_selected" android:state_pressed="false" android:state_checked="true"/>  
<item android:drawable="@drawable/selector_vertical_pressed" android:state_pressed="true" android:state_checked="false"/>
<item android:drawable="@drawable/selector_vertical_normal" android:state_pressed="false" android:state_checked="false"/>

Usando o código acima, o "state_pressed" está funcionando bem, mas a Visualização em si não está sendo verificada (não é oCheckable código sendo chamado como descoberto através de depuração).

questionAnswers(6)

yourAnswerToTheQuestion