我怎样才能从XML定义一个片段的布局?

我试图用定义我的视图的布局相同的方式在XML中定义一个片段的布局。

这可能吗? 我尝试了几件事情,但没有一件似乎能奏效。

我的活动布局如下(main.xml):

<?xml version="1.0" encoding="utf-8"?> <ListView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <fragment xmlns:android="http://schemas.android.com/apk/res/android" android:name="full.lommeregner.Lommeregnerrv2Activity" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/lommeregnerv2"> </fragment> </ListView> 

现在,由于我不是通过原始Java代码生成布局的忠实粉丝,所以我尝试按如下方式定义我的片段(fragment_lommeregner.xml):

  <fragment xmlns:android="http://schemas.android.com/apk/res/android" android:name="full.lommeregner.Lommeregnerrv2Activity" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/lommeregnerv2"> <!-- my content was located here (some textviews, buttons and so on). --> </fragment> 

难道我做错了什么? 我怎样才能通过XML定义一个片段的布局?

Solutions Collecting From Web of "我怎样才能从XML定义一个片段的布局?"

一个片段的作用就像一个活动,因为你需要一个Java类文件来处理它。 你不能通过创build一个片段布局来创build一个片段 – 你需要一个你的片段的类:

  1. 为您的活动创build一个布局XML和一个Activity子类
  2. 为您的片段创build一个布局XML和一个Fragment子类
  3. 将两者绑定在您的Activity布局XML中(或者,如果您想在Java代码中使用FragmentTransaction)

如果您还没有这样做,请阅读,重新阅读和消化此页面上的所有内容: https : //developer.android.com/guide/components/fragments.html

这里有很多,但碎片现在是Android应用程序的重要组成部分,所以需要阅读。 好消息是碎片的基础很简单。

只需添加到您的<fragment>标签作为属性:

 tools:layout="@layout/your_layout_xml" 

并在您的main.xml(或<fragment>标签容器)到您的父容器(在这种情况下ListView ):

 xmlns:tools="http://schemas.android.com/tools"