- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我尝试在 DialogFragment 上添加 SupportMapFragment,但它返回类 fragment 膨胀错误
。我不明白为什么它返回 error inflating class fragment
。我认为我使用的方法是正确的。我需要从 DialogFragment 扩展,因为我想在对话框中显示 map 。
我已经关注了这个 answer , 和 this answer也是,没有人能解决我的问题。
有人可以帮助我吗?
谢谢。
这是我的 DialogFragment :
import android.support.v4.app.DialogFragment;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.LayoutInflater;
/* For widget */
import android.widget.TextView;
import android.widget.ImageView;
import android.widget.Button;
/* Image Downloader Library */
import com.squareup.picasso.Picasso;
/* For string formater */
import com.yai.app.math.support.StringFormater;
/* For object */
import com.yai.app.object.support.Property;
import com.yai.app.object.support.User;
/* For context */
import android.content.Context;
import com.google.android.gms.maps.CameraUpdateFactory;
/* For map */
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
public class DialogFragmentReadAdvertisement extends DialogFragment{
private Property propertyData;
private User userData;
private Context contextData;
private GoogleMap mapDetail;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
propertyData = MainActivity.activeProperty;
userData = MainActivity.activeUser;
contextData = App.getContext();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View view = inflater.inflate(R.layout.dialog_fragment_read_advertisement, container, false);
mapDetail = ((SupportMapFragment) getFragmentManager().findFragmentById(R.id.map_data))
.getMap();
mapDetail.addMarker(
new MarkerOptions().position(propertyData.getLocation())
);
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(propertyData.getLocation())
.zoom(19)
.tilt(0)
.bearing(0)
.build();
mapDetail.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
return view;
}
}
这是我的 xml 布局:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- One view for ScrollView -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- Line 13 bellow -->
<fragment
android:id="@+id/map_data"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"/>
</LinearLayout>
</ScrollView>
这是我的 LogCat:
07-14 16:28:46.291: E/AndroidRuntime(28121): FATAL EXCEPTION: main
07-14 16:28:46.291: E/AndroidRuntime(28121): android.view.InflateException: Binary XML file line #13: Error inflating class fragment
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
07-14 16:28:46.291: E/AndroidRuntime(28121): at com.yai.properti.tujuh.tujuh.tujuh.DialogFragmentReadAdvertisement.onCreateView(DialogFragmentReadAdvertisement.java:55)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1082)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:310)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:676)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
07-14 16:28:46.291: E/AndroidRuntime(28121): at com.yai.properti.tujuh.tujuh.tujuh.DialogFragmentReadAdvertisement.onCreateView(DialogFragmentReadAdvertisement.java:55)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.os.Handler.handleCallback(Handler.java:615)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.os.Handler.dispatchMessage(Handler.java:92)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.os.Looper.loop(Looper.java:137)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.app.ActivityThread.main(ActivityThread.java:4895)
07-14 16:28:46.291: E/AndroidRuntime(28121): at java.lang.reflect.Method.invokeNative(Native Method)
07-14 16:28:46.291: E/AndroidRuntime(28121): at java.lang.reflect.Method.invoke(Method.java:511)
07-14 16:28:46.291: E/AndroidRuntime(28121): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)
07-14 16:28:46.291: E/AndroidRuntime(28121): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
07-14 16:28:46.291: E/AndroidRuntime(28121): at dalvik.system.NativeStart.main(Native Method)
07-14 16:28:46.291: E/AndroidRuntime(28121): Caused by: java.lang.IllegalArgumentException: Binary XML file line #13: Duplicate id 0x7f05009e, tag null, or parent id 0x0 with another fragment for com.google.android.gms.maps.SupportMapFragment
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:296)
07-14 16:28:46.291: E/AndroidRuntime(28121): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:676)
07-14 16:28:46.291: E/AndroidRuntime(28121): ... 30 more
最佳答案
我在 DialogFragment 中添加 GoogleMapFragment 时遇到问题,我已将其解决为
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
if (Build.VERSION.SDK_INT < 21) {
supportMapFragment = (SupportMapFragment) getActivity()
.getSupportFragmentManager().findFragmentById(R.id.mapDialog);
} else {
supportMapFragment = (SupportMapFragment) getActivity().getSupportFragmentManager()
.findFragmentById(R.id.mapDialog);
}
supportMapFragment.getMapAsync(this);
}
Override onDestroy() as
@Override
public void onDestroy() {
super.onDestroy();
if (null != supportMapFragment)
getActivity().getSupportFragmentManager().beginTransaction()
.remove(supportMapFragment)
.commit();
}
关于android - 将 SupportMapFragment 放在 DialogFragment 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24733436/
我当前项目中的许多类都有几个只能从类本身内部调用的属性和方法。此外,根据类(class)的当前状态,它们可能会扰乱类(class)的工作。 目前,所有这些接口(interface)都在 .h 文件的主
我想使用ngbTabSet将nav-pills in card-header 和tab-content in card-body。但我不知道该怎么做。 这是我尝试实现的示例(使用 bootstrap.
我正在浏览文档以查找如何允许放置在停靠栏图标上。据我所知,建议您使用 LSItemContentTypes,因为 CFBundleTypeOSTypes 已弃用。但是,我无法让 LSItemConte
我正在尝试在书签中使用 jquery UI 作为 slider 。并且 jquery ui 要求在普通 jquery 文件之后包含该文件。 所以到目前为止我所尝试的只是将脚本附加到 header ,同
您好,我尝试了广泛的谷歌搜索,但似乎没有任何帮助。 这是我的场景: 公司 Logo 存储在外部域/网址(矩形)中。 带有谷歌地图的 Ionic 应用程序,将这些 Logo 作为标记放置在 map 上。
我今天在阅读我的一些 C# 代码时发现了这一行: if (ProgenyList.ItemContainerGenerator.Status != System.Windows.Controls.Pr
我刚遇到this question在 Go FAQ 中,它让我想起了困扰我一段时间的事情。不幸的是,我真的不明白答案是什么。 似乎几乎所有非 C 类语言都将类型放在变量名之后,如下所示: var :
这是有效的 HTML 吗? 最佳答案 作为元素可以包含 phrasing content ,以及属于该组,则有效。 从语义上(并且具有一些常识),如果唯一的内容是 , 不;如果它同时包含文本和图像
这是有效的 HTML 吗? 最佳答案 作为元素可以包含 phrasing content ,以及属于该组,则有效。 从语义上(并且具有一些常识),如果唯一的内容是 , 不;如果它同时包含文本和图像
我有两本 T.Parr 写的关于 ANTLR 的书,我到处都看到美元符号和符号的引用。它也对我有用: term : IDENT -> { new TokenNode($IDENT) }; 或更复杂的东
我在实现段控制时遇到了一些问题。因为我希望它是一个固定的标题,所以当我滚动时我总是可以看到它,我已经在 - (UIView *)tableView:(UITableView *)tableView v
我有一个 20x36px (10x18pt) 的箭头图像,当我选择一个 UIImageView 时,将它拖到我的 View Controller 上然后设置图像,它总是模糊的。我只在我的项目中包含 @
How can I put background image when I hover a link Insert Bg in this a when hov
我需要在我的 .container 中添加(最新的第一个)新分区,但在 .controls (按钮)之后。可能吗? 注意:添加新的分区来保存按钮下方的前置控件对我来说不是一个选择。 HTML 需要保持
我是一名优秀的程序员,十分优秀!