- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在使用 NavigationDrawer
开发应用程序,即 DrawerLayout
并导航到不同的 Fragments
。当我调用 Map_Fragment_Page
应用程序崩溃,但不是第一次。它第一次正确显示 Map
但之后当我导航不同的 fragment 并再次来到 Map_Fragment_Page
然后它崩溃并给出错误 android.view.InflateException : 二进制 XML 文件第 8 行:膨胀类 fragment 时出错
我尝试了很多不同的解决方案,我也在 Google
上进行了搜索,但仍然没有得到所需的解决方案。问题还没有解决。
howtoreach.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:id="@+id/howtoreach_map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"/>
</RelativeLayout>
HowToReach.java
package com.demo.map.howtoreach;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import android.support.v4.app.Fragment;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.maps.model.Polyline;
import com.google.android.gms.maps.model.PolylineOptions;
import com.demo.map.R;
import android.app.ProgressDialog;
import android.content.Context;
import android.graphics.Color;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
public class HowToReach extends Fragment
{
public static final String TAG = "fragment_5";
ProgressDialog dialog;
GoogleMap googleMap;
Marker marker;
LocationManager locationManager;
Location location;
Criteria criteria;
String provider;
double latitude, longitude;
public HowToReach(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View v = inflater.inflate(R.layout.howtoreach, container, false);
dialog = ProgressDialog.show(getActivity(),"","Loading",true,false);
int secondsDelayed = 4;
new Handler().postDelayed(new Runnable()
{
public void run()
{
dialog.dismiss();
}
}, secondsDelayed * 1000);
try
{
// Loading map
if (googleMap == null)
{
googleMap = ((SupportMapFragment) getFragmentManager().findFragmentById(R.id.howtoreach_map)).getMap();
googleMap.setMyLocationEnabled(true);
locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
criteria = new Criteria();
provider = locationManager.getBestProvider(criteria, true);
location = locationManager.getLastKnownLocation(provider);
latitude = location.getLatitude();
longitude = location.getLongitude();
// create marker
marker = googleMap.addMarker(new MarkerOptions().position(
new LatLng(latitude, longitude)).title("You are Here"));
marker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED));
marker.showInfoWindow();
CameraPosition cameraPosition = new CameraPosition.Builder().target(
new LatLng(latitude, longitude)).zoom(15).build();
googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
Polyline line = googleMap.addPolyline(new PolylineOptions()
.add(new LatLng(latitude, longitude), new LatLng(18.520897,73.772396))
.width(2).color(Color.RED).geodesic(true));
marker = googleMap.addMarker(new MarkerOptions().position(
new LatLng(18.520897, 73.772396)).title("DSK Ranwara Road"));
marker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED));
// check if map is created successfully or not
if (googleMap == null)
{
Toast.makeText(getActivity(),"Sorry! unable to create maps", Toast.LENGTH_SHORT).show();
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
return v;
}
}
最佳答案
Yes.. I want Map inside a Fragment.
你应该使用 MapView
http://developer.android.com/reference/com/google/android/gms/maps/MapView.html
public class HowToReach extends Fragment {
MapView mapView;
GoogleMap map;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment2, container, false);
// Gets the MapView from the XML layout and creates it
try {
MapsInitializer.initialize(getActivity());
} catch (GooglePlayServicesNotAvailableException e) {
Log.e("Address Map", "Could not initialize google play", e);
}
switch (GooglePlayServicesUtil.isGooglePlayServicesAvailable(getActivity()) )
{
case ConnectionResult.SUCCESS:
Toast.makeText(getActivity(), "SUCCESS", Toast.LENGTH_SHORT).show();
mapView = (MapView) v.findViewById(R.id.map);
mapView.onCreate(savedInstanceState);
// Gets to GoogleMap from the MapView and does initialization stuff
if(mapView!=null)
{
map = mapView.getMap();
map.getUiSettings().setMyLocationButtonEnabled(false);
map.setMyLocationEnabled(true);
CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(43.1, -87.9), 10);
map.animateCamera(cameraUpdate);
}
break;
case ConnectionResult.SERVICE_MISSING:
Toast.makeText(getActivity(), "SERVICE MISSING", Toast.LENGTH_SHORT).show();
break;
case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED:
Toast.makeText(getActivity(), "UPDATE REQUIRED", Toast.LENGTH_SHORT).show();
break;
default: Toast.makeText(getActivity(), GooglePlayServicesUtil.isGooglePlayServicesAvailable(getActivity()), Toast.LENGTH_SHORT).show();
}
// Updates the location and zoom of the MapView
return v;
}
@Override
public void onResume() {
mapView.onResume();
super.onResume();
}
@Override
public void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
@Override
public void onLowMemory() {
super.onLowMemory();
mapView.onLowMemory();
}
}
fragment2.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.gms.maps.MapView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/map" />
</RelativeLayout>
更新:
https://developers.google.com/android/reference/com/google/android/gms/maps/MapView#public-constructors
getMap()
已弃用。请改用 getMapAsync(OnMapReadyCallback)
。回调方法为您提供了一个保证为非空且可供使用的 GoogleMap 实例。
关于Android - android.view.InflateException : Binary XML file line #8: Error inflating class fragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20919048/
我有一个 ListView ,每个项目加载一个 fragment ,其中包括另一个 fragment 。第一次充电没问题,但是当我返回到 lisview 并重新加载另一个 fragment (或相同
我浏览了 API 但没能很好地理解。我无法理解这种方法的结果。我是 Android 的新手,需要帮助。 package com.javacodegeeks.android.fragmentstest;
在我的 MenuAdapter 类中尝试膨胀 View 时,我不断收到 InflateException。我将麻烦的代码包围在 try-catch block 中并收到错误消息: 整个项目的链接: h
好吧,事情就是这样,我观看了大量视频并阅读了大量文章,但我找不到解决方案...... 基本上,我的应用程序崩溃是因为我正在膨胀,而且我找不到解决方案。 JAVA: package com.iweto;
我正在研究此链接中的 fragment :http://developer.android.com/guide/components/fragments.html 有一段代码如下: public st
在我的 Android 应用程序中,我正在构建我的第一个自定义适配器。我现在在膨胀 convertView 的那一行遇到了一个空指针。请看下面的代码: private List possibiliti
我有布局,我想膨胀它 喜欢 LinearLayout ll=(LinearLayout)findViewById(R.id.llContainer);
Fragment 中的以下几行引发异常,我无法找到其根本原因。 public View onCreateView(LayoutInflater inflater, ViewGroup containe
我在以下行上遇到强制关闭错误: view = inflater.inflate(R.layout.video_list_item, parent, false); 当将java类设置为 Activit
我正在开发一款 Android 应用,我尝试在该应用中实现社交分享按钮。 我查看了 Android 文档以进行共享 - Sharing simple data并在那里实现代码;然而,应用程序在启动时崩
我们正在尝试构建一个基于 php 的视频共享站点,允许用户上传他们自己的内容。 我们需要将所有这些视频转换为中等质量的 mp4 视频文件,以便最终通过 FlowPlayer 进行流式传输。 我们的代码
在我的应用程序中,我尝试使用 java 的 Inflater/Deflater 类来压缩/解压缩字节数组。这是我最初使用的部分代码: ByteArrayOutputStream outputSt
Deflater 压缩由 0 到 99 字节组成的字节数组(长度为 100)压缩后的字节数组被传递给 Inflater 作为解压缩的输入。解压缩器返回的长度比原始列表缺少 3 个字节。 以下是代码:
我想使用java.util.zip包恢复压缩的中等长度字符串(665个字符),压缩是通过以下代码进行的: public String compress(String s){ Deflater
有什么方法可以覆盖默认的 layoutInflater 以便能够根据我的意愿动态创建布局,同时从数据库中获取 XML 结构的数据? 哈密扎克 最佳答案 您可以使用 LayoutInflater.set
我正在尝试学习 Android,但我不明白 Inflate 的真正作用。我见过不同的示例,在这些示例中,它用于在另一个布局中插入布局,但我不确定在哪里使用它比较好。 任何人都可以提供好的例子吗? 最佳
这个问题在这里已经有了答案: Why does LayoutInflater ignore the layout_width and layout_height layout parameters
我有一个带滑动导航的 android Activity (使用 ViewPager 实现)。 public class UberActivity extends FragmentActivity {
我是 Android 的新手,我试图在 xml 中扩展布局,但我得到了一个 RuntimeException。除了我的 Activity 类和扩展 SurfaceView 的类之外,我几乎删除了所有内
在 Unity documentation他们谈论充气类型,例如在这里: 字段值不能是泛型类型(膨胀类型)的特定特化。 这究竟是什么意思? 最佳答案 Mono's documentation ,Uni
我是一名优秀的程序员,十分优秀!