gpt4 book ai didi

android - 带有 Google Map API v2 的 ViewPager 变黑

转载 作者:行者123 更新时间:2023-11-29 21:16:51 25 4
gpt4 key购买 nike

我已将新的 google maps api v2 fragment 集成到 View 寻呼机中。当我从 map 选项卡(街道 View 屏幕)移动到第二个选项卡(客户详细信息)时,显示的黑色 View 将数据转换为 fragment 。任何人都知道解决方案。??

截图:

enter image description here

代码:

ListingStreetViewFragment.java

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {



View inflatedView = inflater.inflate(R.layout.map_view, container, false);


try {
MapsInitializer.initialize(getActivity());
} catch (GooglePlayServicesNotAvailableException e) {
// TODO handle this situation
}

markers = new Hashtable<String, String>();

mMapView = (MapView) inflatedView.findViewById(R.id.map);
mMapView.onCreate(mBundle);
mMapView.onResume();
setUpMapIfNeeded(inflatedView);

return inflatedView;
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mBundle = savedInstanceState;
}

// mapping between map object with xml layout.
private void setUpMapIfNeeded(View inflatedView) {
if (mMap == null) {
mMap = ((MapView) inflatedView.findViewById(R.id.map)).getMap();
if (mMap != null) {
mMap.setInfoWindowAdapter(new CustomInfoWindowAdapter());
setUpMap();

}
}
}

//set location on map and show marker on random location
private void setUpMap() {
// random latitude and logitude

// Adding a marker
MarkerOptions marker = new MarkerOptions().position(
new LatLng(53.558, 9.927))
.title("Hello Maps ");

marker.snippet("dinet");



// changing marker color

marker.icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_BLUE));


mMap.addMarker(marker);

// Move the camera to last position with a zoom level
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(new LatLng(53.558,
9.927)).zoom(16).build();

mMap.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPosition));
}



@Override
public void onResume() {

if (null != mMapView)
mMapView.onResume();
super.onResume();
}

@Override
public void onPause() {
super.onPause();
if (null != mMapView)
mMapView.onPause();
}

@Override
public void onDestroy() {
super.onDestroy();
if (null != mMapView)
mMapView.onDestroy();
}

@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
if (null != mMapView)
mMapView.onSaveInstanceState(outState);
}

@Override
public void onLowMemory() {
super.onLowMemory();
if (null != mMapView)
mMapView.onLowMemory();
}

ListingClientDetailFragment.java

public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

View rootView = inflater.inflate(R.layout.client_detail, container, false);

initUi(rootView);
idval = ListingListFragment.cid;
System.out.println("SET: " + idval);
setValues();

return rootView;
}


protected void initUi(View v){
db = new Databasehelper(getActivity());

cDetail = new HashMap<String, String>();

tvName = (TextView)v.findViewById(R.id.tvName);
tvType = (TextView)v.findViewById(R.id.tvType);
tvStatus = (TextView)v.findViewById(R.id.tvStatus);
tvEmail = (TextView)v.findViewById(R.id.tvEmail);
tvPhone = (TextView)v.findViewById(R.id.tvPhone);

ivCall = (ImageView)v.findViewById(R.id.ivCall);
ivMsg = (ImageView)v.findViewById(R.id.ivMsg);

}

//get data from database and set into controls.
protected void setValues(){

cDetail = db.getClientDetail(idval);
tvName.setText(cDetail.get("name"));
tvType.setText(cDetail.get("type"));
tvStatus.setText(cDetail.get("status"));
tvEmail.setText(cDetail.get("email"));
tvPhone.setText(cDetail.get("phone"));

}

并且logcat中没有错误显示。所以,我无法从那里追踪到它。

最佳答案

我曾在一段时间(我相信是四到五个月)前遇到过类似的问题。我有一个从屏幕左侧打开的滑动菜单,以及一个带有 map 的 fragment 。本地图显示时,我打开菜单,实际 map 向右滑动,但菜单被黑色覆盖层覆盖,显然是 map 以某种方式留下的。

我想我已经解决了这个问题,这要归功于对 Stack Overflow 问题的一些开明的回答,但我再也找不到它了。不过,我不确定。也许这是对 Android 错误报告的一些评论。由于各种原因,我还丢失了存储代码的存储库的历史记录:我正在尝试通过内存重建解决方案,所以我不会打赌它会确定答案 - 也许它只是一个提示,用于优化搜索你可以自己做,以接近比我自己更知情的消息来源。

但是,事情是这样的:我认为它是在布局方面解决的。 IIRC 的诀窍是在 map 上添加一个具有透明背景的 View 。我已经在 map 上有了叠加 View ,所以我只需要更改背景颜色即可。生成的 XML 文件大致如下:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<FrameLayout
android:id="@+id/map_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent">

<ImageView
android:id="@+id/menu_button"
android:layout_width="@dimen/menu_button_side"
android:layout_height="@dimen/menu_button_side"
android:src="@drawable/red_menu_button"
android:scaleType="centerCrop" />

</RelativeLayout>

</FrameLayout>

罪魁祸首是一些用于渲染 map 的 Open GL View 的背景,默认情况下是黑色的,或者其他什么。我相信这确实是某处的 Android 错误报告。因此,请尝试在您的 map 上叠加具有透明背景的布局或 View ,看看是否可行。在我的例子中,不祥的黑色封面消失了,但在菜单滑动动画期间,它在 map 下仍然清晰可见。不管怎样,我认为这只是一个小故障,对结果很满意。我希望这能以某种方式有所帮助。

关于android - 带有 Google Map API v2 的 ViewPager 变黑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21180197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com