Android:Merge-Tag不支持片段

Android:Merge-Tag不支持片段,第1张

概述参见英文答案 > Can you use the merge tag with fragments?                                    1个 我是使用片段的初学者.是否可以有这样的布局: <merge xmlns:android="http://schemas.android.com/apk/res/android"> <include layout=" 参见英文答案 > Can you use the merge tag with fragments?                                    1个
我是使用片段的初学者.是否可以有这样的布局:

<merge xmlns:androID="http://schemas.androID.com/apk/res/androID">    <include layout="@layout/waiting_dialog"/>    <linearLayout        xmlns:androID="http://schemas.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中使用它,如下所示:

@OverrIDepublic 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

怎么处理这个问题?

解决方法 显然如 @L_403_1@所述,这是不可能的.

我所做的就是完全放弃“根布局”(参见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://schemas.androID.com/apk/res/androID"    xmlns:tools="http://schemas.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://schemas.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不支持片段所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1127170.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存