【发布时间】:2014-04-17 07:07:51
【问题描述】:
我正在创建一个看起来像对话框的活动。
风格如下:
<style name="TablesDialogActivity" parent="@android:style/Theme.Holo.Dialog">
<item name="android:windowBackground">@drawable/frame_background_left</item>
</style>
这里是 onCreate() 活动:
protected void onCreate(Bundle savedInstanceState) {
getWindow().setFlags(LayoutParams.FLAG_NOT_TOUCH_MODAL, LayoutParams.FLAG_NOT_TOUCH_MODAL);
getWindow().setFlags(LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);
super.onCreate(savedInstanceState);
}
还有在活动触摸拦截器内部:
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
finish();
return true;
}
return false;
}
它几乎可以工作,活动在对话框边界之外的触摸完成,但它也与背景活动上的按钮交互,这是不好的。 onTouchEvent 上的文档说,如果您使用了触摸事件,则应该返回 true。我返回 true,但似乎并非如此。
【问题讨论】:
-
你看过我的代码了吗?如果你这样做了,你就会知道它是从那里拿走的。
-
你可以在这里找到我的解决方案:stackoverflow.com/questions/16701915/…
标签: android android-activity android-styles