【问题标题】:Google Map Resize谷歌地图调整大小
【发布时间】:2015-12-23 09:36:06
【问题描述】:

我正在尝试在地图的 onclick 中实现 onclick 侦听器。
当用户点击地图时,地图将全屏显示。
我的地图是屏幕的 1/4。
这样当用户点击它时我会全屏显示。

我只试过这个。

  map.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
            @Override
            public void onMapClick(LatLng latLng) {

            }
        });

getLayoutParams 无法设置宽度或高度。还有其他方法可以做我想做的事吗?

【问题讨论】:

  • 在地图活动中设置 xml 的宽度和高度。或在运行时管理。

标签: android google-maps android-studio


【解决方案1】:

这对我有用:

    map.setOnMapClickListener(new GoogleMap.OnMapClickListener() { @Override  public void onMapClick(LatLng point)  {
        LinearLayout mapFrameLayout = (LinearLayout)findViewById(R.id.mapf);

        if (!isMapOpen)     
        {
            LinearLayout.LayoutParams fullMapParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
            if (!isDetailsOpen)
            {
                FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
                fragmentTransaction.hide(closedDetailsFragment).commit();
                mapFrameLayout.setLayoutParams(fullMapParams);
                isMapOpen = true;
                isDetailsOpenWhenOpenedMap = false;
            }
            else
            {
                FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
                fragmentTransaction.hide(openedDetailsFragment).commit();
                mapFrameLayout.setLayoutParams(fullMapParams);
                isMapOpen = true;
                isDetailsOpenWhenOpenedMap = true;
            }
        }
        else
        {
            LinearLayout.LayoutParams defaultMapparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 280);
            mapFrameLayout.setLayoutParams(defaultMapparams);
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            if (isDetailsOpenWhenOpenedMap)
            {
                fragmentTransaction.show(openedDetailsFragment).commit();               
            }
            else
            {
                fragmentTransaction.show(closedDetailsFragment).commit();
            }
            isMapOpen = false;
        } }   
});

【讨论】:

  • 这可能真的有效.. 我在外地,也许我回家后可以试试这个。但这可以处理 Onbackpress 吗?我的意思是我的地图片段位于没有 onbackpress 的片段内。当我使用 backpress 时,地图将被调整回原始大小。
  • fragmentTransaction.replace( R.id.fragment, new MyFragment() ).addToBackStack( "tag" ).commit();你可以尝试 addtobackstack 来处理后按
猜你喜欢
  • 2016-02-25
  • 1970-01-01
  • 2012-07-20
  • 2013-08-28
  • 2011-11-05
  • 1970-01-01
  • 1970-01-01
  • 2014-02-20
  • 2013-11-26
相关资源
最近更新 更多