Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android:Merge-Tag不支持片段大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Can you use the merge tag with fragments?                                    1个
我是使用片段的初学者.是否可以有这样的布局:

<merge xmlns:android="http://scheR_199_11845@as.android.com/apk/res/android">
    <include layout="@layout/waiTing_dialog"/>
    <LinearLayout
        xmlns:android="http://scheR_199_11845@as.android.com/apk/res/android"
        android:id="@+id/my_layout"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:BACkground="@drawable/bg_tile"
        android:gravity="center_horizontal" 
        android:orientation="vertical"
        android:visibility="invisible">

        <include layout="@layout/no_entries"/>      
    </LinearLayout>
</merge>

并在片段’onCreateView中使用它,如下所示:

@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,final Bundle savedInstanceStatE) {
    View view = inflater.inflate(R.layout.main,container,falsE); 
    return view;
}

始终存在以下错误

07-11 09:53:47.608: E/AndroidRuntime(5602): android.view.InflateException: \
  <merge /> can be used only with a valid ViewGroup root and attachToRoot=true

怎么处理这个问题?

解决方法

显然如 here所述,这是不可能的.

我所做的就是完全放弃“根布局”(参见battery_details.xml).所以我为MonitOractivity创建了一个片段布局:

public class MonitOractivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceStatE) {
        super.onCreate(savedInstanceStatE);
        setContentView(R.layout.activity_monitor);
    }
}

布局在哪里:

<!-- activity_monitor.xml -->
<LinearLayout xmlns:android="http://scheR_199_11845@as.android.com/apk/res/android"
    xmlns:tools="http://scheR_199_11845@as.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:baselineAligned="false"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MonitOractivity" >
    <fragment android:name="di.k23b.hw3.fragments.MonitorDetailsFragment"
            android:id="@+id/monitor_details"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="match_parent" />
    <fragment android:name="di.k23b.hw3.fragments.MonitorPrefsFragment"
            android:id="@+id/monitor_preferences"
            android:layout_weight="2"
            android:layout_width="0dp"
            android:layout_height="match_parent" />
</LinearLayout>

并在MonitorDetailsFragment类中:

public class MonitorDetailsFragment extends Fragment {  
    @Override
    public View onCreateView(LayoutInflater inflater,Bundle savedInstanceStatE) {
        return inflater.inflate(R.layout.battery_details,falsE); // NEVER TRUE !
    }
}

其中battery_details.xml(在res / layout中创建):

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://scheR_199_11845@as.android.com/apk/res/android"
    android:id="@+id/batteryTextHealth"
    android:layout_width="120dp"
    android:layout_height="wrap_content"
    android:ems="10"
    android:text="BATTERRRYYY"
    android:textIsSELEctable="true" >
</TextView>

作品.因此,您可以编辑使用片段的布局,添加< LinearLayout>那里只是放了< LinearLayout>的元素.直接进入你在OnCreateView中使用的布局 – 删除合并标签

大佬总结

以上是大佬教程为你收集整理的Android:Merge-Tag不支持片段全部内容,希望文章能够帮你解决Android:Merge-Tag不支持片段所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。