如何在可点击的FrameLayout中指明选择?

时间:2011-03-02 17:02:26

标签: android

我正在尝试实现可点击的复合视图。复合视图使用FrameLayout实现,FrameLayout包含一组膨胀的子视图。如果用户点击FrameLayout中的任何位置,我想将视图刷新,就像它被选中一样,然后执行一些操作。

这是我目前的代码:

private void fillFrameLayout(FrameLayout frame) {
    View disclosureItem = getLayoutInflater().inflate(R.layout.disclosure_item, frame);
    frame.setClickable(true);
    frame.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
            // Do something
        }
    });
}

有人可以告诉我如何在点击框架时向用户提供一些可见的反馈吗? IE:选择框架的方式与选择在列表或网格视图中显示的方式相同。

感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用多个drawable定义可绘制的背景:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_pressed="true"
      android:state_window_focused="true"
      android:drawable="@drawable/bg_selected" />

<item android:state_focused="true"
      android:state_window_focused="true"
      android:drawable="@drawable/bg_selected" />

<item android:state_selected="true"
      android:state_window_focused="true"
      android:drawable="@drawable/bg_selected />

<item android:drawable="@drawable/bg" />

在您的布局中,将此drawable添加为背景drawable:

<FrameLayout
    ...
    android:background="@color/bg_drawable" >

我希望这就是你的意思吗?