无法在相对布局内添加片段标签

时间:2018-08-28 11:45:43

标签: android-layout android-fragments

我想在Activity的RelativeLayout内添加标签。但是我遇到了渲染错误。

fragment tag

有关如何解决的任何帮助?

编辑:添加崩溃的堆栈跟踪

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.chandranichatterjee.mapapp/com.example.chandranichatterjee.myapplicationloc.MapsActivityNew}: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class fragment
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2583)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2665)
        at android.app.ActivityThread.-wrap11(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1499)
        at android.os.Handler.dispatchMessage(Handler.java:111)
        at android.os.Looper.loop(Looper.java:207)
        at android.app.ActivityThread.main(ActivityThread.java:5767)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
     Caused by: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class fragment
        at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
        at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:412)
        at android.app.Activity.setContentView(Activity.java:2204)
        at com.example.chandranichatterjee.myapplicationloc.MapsActivityNew.onCreate(MapsActivityNew.java:24)
        at android.app.Activity.performCreate(Activity.java:6322)}

4 个答案:

答案 0 :(得分:3)

如@Nazariy Moshenskiy所建议,我需要在android:name标签中添加<fragment>属性。

这是我的布局(如果将来有人遇到相同的问题)。

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    map:cameraZoom="2"

    tools:context=".MapsActivityNew" />

答案 1 :(得分:2)

如果您要使用android:name="com.example.myapp.YourFragmentHere"标签,我认为您需要在片段内添加Fragment来定义<fragment>类。

答案 2 :(得分:0)

如您的错误消息所述:

  

<fragment>标签允许布局文件在运行时动态包含不同的布局。在布局编辑时,要使用的特定布局未知。您可以在编辑布局时选择要预览的布局。

它不知道片段应该显示什么,但是可以忽略它,因为最后的结果确实知道它。您不能只拥有这样的常规预览。

编辑:

根据片段膨胀的经验,最常见的错误是:

使用:

public class MainActivity extends Activity {

代替:

public class MainActivity extends FragmentActivity {

,并且在清单文件中meta-data之外具有application标签。

答案 3 :(得分:0)

您必须在android:name="com.example.YourFragmentHere标签内添加fragment来定义Fragment类。像这样

<fragment  
android:id="@+id/fragment"
android:layout_width="match_parent"  
android:layout_height="match_parent"  
android:name="com.example.YourFragmentHere"  
/>