我正在使用 Android 2.2.3。我在 FrameLayout 中有一个 Button,以便该按钮覆盖整个 FrameLayout。
当我按下按钮时,只有按钮的选择器会收到按下事件。由于按钮位于框架的顶部,因此框架的选择器不会收到此事件。即:属性“android:state_pressed="true" 发生在按钮而不是框架上。
我需要新闻事件而不是点击事件。
我想在按下按钮时将框架的选择器设置为 android:state_pressed="true" 。
我试过使用
mMuteBtn.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
mFrameMute.setPressed(true);
}
if (event.getAction() == MotionEvent.ACTION_UP) {
mFrameMute.setPressed(false);
}
return false;
}
});
但它阻止了我还需要进行其他一些工作的 onClick() 事件。
我的 main.xml 文件是:
<FrameLayout
android:id="@+id/frame_mute1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/selector_background" >
<Button
android:id="@+id/mute_btn1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@android:color/transparent"
android:drawableTop="@drawable/selector_button"
android:text="mute"
android:textColor="@android:color/black"
android:textSize="12sp" />
</FrameLayout>
选择器背景:
<item android:drawable="@drawable/bg2" android:state_pressed="true"/>
<item android:drawable="@drawable/bg3" android:state_selected="true"/>
<!-- default -->
<item android:drawable="@drawable/bg1"/>
选择器按钮:
<item android:drawable="@drawable/image2" android:state_pressed="true"/>
<item android:drawable="@drawable/image3" android:state_selected="true"/>
<!-- default -->
<item android:drawable="@drawable/image1"/>