我正在尝试实现可点击的复合视图。复合视图使用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:选择框架的方式与选择在列表或网格视图中显示的方式相同。
感谢。
答案 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" >
我希望这就是你的意思吗?