当前位置: 首页 > 知识库问答 >
问题:

Google Maps v2-方向更改后onClick侦听器没有响应

仉嘉泽
2023-03-14

我在应用程序中使用谷歌地图V2,当我将方向更改为横向(或基本上更改方向)时,onmaclick方法不会响应,即使方向再次更改,也不会响应。我知道我可以通过设置configChange:orientation | screenSize来避免这个奇怪的错误,但是当orientation发生变化时,我的对话的布局不会从布局纵向更改为布局横向。这一切都在一个活动中。有人遇到过这个问题吗?这些地图怎么了?我不明白问题出在哪里,为什么听众应该取消注册。我在onCreateMethod中注册它:@Override protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity\u main);

    DisplayMetrics dm = getResources().getDisplayMetrics();
    screenWidth = dm.widthPixels;
    screenHeight = dm.heightPixels;

    FontUtils.setCustomFont(this, (ViewGroup) getWindow().getDecorView());

    RelativeLayout topBar = (RelativeLayout) findViewById(R.id.topBar);
    LinearLayout placeTextLayout =    (LinearLayout)topBar
                                                  .findViewById(R.id.placeTextLayout);
    placeTextView = (TextView) placeTextLayout.findViewById(R.id.placeText);

    sharedPrefs = getSharedPreferences
                              (SkyConstants.PREFS_NAME,Context.MODE_PRIVATE);
    String place = sharedPrefs.getString
                  (SkyConstants.PREF_LOCATION_ID,SkyConstants.PREF_LOCATION_DEFAULT);

    dateTextView = (TextView) topBar.findViewById(R.id.dateText);
    daysTextView = (TextView) topBar.findViewById(R.id.timeText);

    updateTopBar();
    setUpMapIfNeeded();
}

private void setUpMapIfNeeded()
{
    if (mMap == null)
    {
        mMap = ((SupportMapFragment)getSupportFragmentManager()
                                                 .findFragmentById(R.id.html" target="_blank">map)).getMap();     
    }
    if (mMap != null)
    {
        mMap.getUiSettings().setZoomControlsEnabled(true);
        mMap.getUiSettings().setZoomGesturesEnabled(true);          
        mMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);

        mMap.setOnMapClickListener(new OnMapClickListener()
        {
            @Override
            public void onMapClick(LatLng point)
            {
            //do something  

            }

        });
    }
}

共有2个答案

沈成天
2023-03-14

在onCreate()方法中将map设置为null有助于处理系统对方向的更改。首先我设置mMap=null,然后设置映射。

丁宏浚
2023-03-14

这是由于为方向创建了视图,如果您处于纵向模式,并更改为横向,则会再次创建视图,您需要再次设置onClickListener。

如果以横向模式启动活动,也会发生同样的情况。

 类似资料:
  • 问题内容: 我整夜都在绞尽脑汁,但似乎无法完成这一小事情。我想将SwitchPreference添加到我的应用程序的PreferenceActivity中。下面是一张图片。 在我说太多之前,我的问题恰好是这样的:我似乎无法仅在首选项的Switch部分上放置一个侦听器。我可以在首选项上设置onPreferenceTreeClick和onPreferenceClick,如果按文本部分,效果很好。但是,

  • 问题内容: 我希望消息框在用户更改文本字段中的值后立即显示。目前,我需要按Enter键才能弹出消息框。我的代码有什么问题吗? 任何帮助,将不胜感激! 问题答案: 将侦听器添加到为您自动创建的基础文档中。

  • 问题内容: 本质上,我希望更改内容时执行脚本。由于脚本是分开的(Chrome扩展程序和网页脚本中的内容脚本),因此我需要一种方法来简单地观察DOM状态的变化。我可以设置轮询,但这似乎草率。 问题答案: 长期以来,DOM3突变事件是最佳的可用解决方案,但由于性能原因,不建议使用它们。DOM4突变观察者代替了不推荐使用的DOM3突变事件。目前,它们在现代浏览器中的实现方式为(或在旧版Chrome中由供

  • 问题内容: 每当尝试从中进行选择时,我都试图触发一个事件。 我遇到的问题是没有明显的方法。 我尝试使用,但从未触发。 没有覆盖的模型,我没有想法。 如何通知有关 选择更改的通知? 编辑:我要道歉。事实证明,我使用的是行为不佳的子类,但由于你的回答是好的,因此我将保留该问题。 问题答案: 它应该响应,如下所示: 正确地指出了也可以。但是,你可能会得到 ,一个用于取消选择先前选择的项目,另一个用于选择

  • 问题内容: 我希望在用户更改文本字段中的值后立即显示消息框。目前,我需要按Enter键才能弹出消息框。我的代码有什么问题吗? 任何帮助,将不胜感激! 问题答案: 将侦听器添加到为你自动创建的基础文档中。

  • 在我的代码中,如果用户在ComboBox 2中输入值,它将反映在TextField中,但是如果用户从ComboBox 1的下拉列表中选择,而不更改ComboBox 2中的值,那么TextField中的值将保持不变,它不会更改。我做错了吗? 测试2。txt:1任何帮助都将不胜感激!