禁用触摸背景片段上的事件

时间:2015-05-17 17:57:27

标签: android android-fragments

我有一个地图片段,当用户登录时,该视图可用。当用户注销时,警告显示记录表单弹出,而地图仍然在后台可见。我的问题是,即使登录对话框在顶部,地图和菜单仍会对触摸事件作出反应,我该如何防止这种情况发生?

地图片段:

if(false)

登录对话框:

public class MainFragment extends MapFragment{

    ...

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {    
        View v = super.onCreateView(inflater, parent, savedInstanceState);
        setRetainInstance(true);
        setHasOptionsMenu(true);

        ...

        m_loginManager = new LoginManager(getActivity());
        m_loginManager.show();

        ...

        return v;
    }

alert_login.xml:

public class LoginManager extends Dialog {

    public LoginManager(Activity activity)
    {
        super(activity);
        setContentView(R.layout.alert_login);
       ...
    }   
}

这是它的样子: enter image description here

1 个答案:

答案 0 :(得分:0)

禁用菜单按钮
在orrder中禁用菜单按钮,您可以覆盖onPrepareOptionsMenu

@Override
public boolean onPrepareOptionsMenu (Menu menu) {
    return false;
}

要在MainFragment出现alert_login.xml时禁用触摸事件,您应将clickable属性设置为true。

alert_login.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true"
      android:layout_centerVertical="true"
      android:background="@android:color/white"
      android:orientation="vertical"
      android:padding="15dp"
      android:clickable="true">

      //...