
我是使用片段的初学者.是否可以有这样的布局:
<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不支持片段所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)