2012-02-26 15 views
16

私はビューのレイアウトを定義したのと同じ方法で、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):

私は何か間違っていますか? XMLを使用してフラグメントのレイアウトを定義するにはどうすればよいですか?

答えて

15

フラグメントは、アクティビティとよく似ています。そのためには、Javaクラスファイルが必要です。あなただけのフラグメントレイアウトを作成することにより、フラグメントを作成することはできません - あなたはあなたのフラグメントのためのクラスが必要:

  1. あなたの活動のためのレイアウトXMLとアクティビティサブクラスを作成し、あなたのためのレイアウトXMLおよびフラグメントのサブクラスを作成します。フラグメント
  2. タイあなたの活動のレイアウトXMLで一緒に2つ(またはFragmentTransactionを使用してJavaコードでそれを行うにしたい場合)

すでに、読んで、そうして再読み込み、すべてを消化していない場合このページの内容: https://developer.android.com/guide/components/fragments.html

そこにはたくさんのものがありますが、フラグメントはAndroidアプリの必須部分であるため、読書が必要です。良いニュースは、フラグメントの基本がかなりシンプルであることです。

+1

彼らは、厳密には要求されていませんが、多くの場合あなたの人生を楽にします。 – adamp

+0

現在自動生成されているEclipseの例では、FragmentTransactionsを使用しています。ビューは静的フラグメントクラスによって生成され、関数呼び出しから返されます。私は現在、自分のタブを追加する方法に取り組んでいます。 – anon58192932

+0

'Fragment'クラスのインスタンスはどのXMLファイルにそのレイアウトが含まれているかをどのように指定しますか? 'Activity'は' onContentView(R.layout.my_activity_layout) 'を持ち、' ​​onCreate() 'の間に呼び出すことができます。フラグメントのアナログはありますか? – dinosaur

10

単にプロパティとしてご<fragment>タグに追加します(この場合はListViewで)自分の親コンテナに

tools:layout="@layout/your_layout_xml" 

そして、あなたのmain.xml(または<fragment>タグコンテナ)内:

xmlns:tools="http://schemas.android.com/tools" 
関連する問題