7

フラグメントをに揃えようとすると、実際に問題が発生しますがRelativeLayout、これは簡単なはずです。隣同士に2つのフラグメントが必要で、それを使用するLinearLayoutと正常に機能します。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

   <fragment android:name="com.fragment.test.TitlesFragment"
            android:id="@+id/fragmentTitles"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
     />

    <FrameLayout 
            android:id="@+id/details" 
            android:layout_weight="1"
            android:layout_width="0px"
            android:layout_height="fill_parent" 
    />

</LinearLayout>

ここに画像の説明を入力してください

ただし、を使用するRelativeLayoutと、何も表示されません。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

   <fragment android:name="com.fragment.test.TitlesFragment"
            android:id="@+id/fragmentTitles"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
     />

    <FrameLayout 
            android:id="@+id/details" 
            android:layout_weight="1"
            android:layout_width="0px"
            android:layout_height="fill_parent" 
            android:layout_toRightOf="@id/fragmentTitles"            
    />

</RelativeLayout>

ここに画像の説明を入力してください

アップデート:

これが私が見ているもののスクリーンショットです:

ここに画像の説明を入力してください

これは私が使用しているコードです:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    >

    <LinearLayout
        android:orientation="horizontal"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:weightSum="3"
    >
        <fragment android:name="com.fragment1"
                android:id="@+id/fragment1"
                android:layout_weight="1"
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_above="@id/statusUpdated"
         />

        <fragment android:name="com.fragment2"  
                android:id="@+id/fragment2"
                android:layout_width="0px"
                android:layout_weight="2"
                android:layout_height="fill_parent"
                android:layout_above="@id/statusUpdated"        
                android:layout_toRightOf="@id/fragment1"
         />

    </LinearLayout>

    <TextView android:id="@+id/statusUpdated" style="@style/Status" />

</RelativeLayout>
4

1 に答える 1

6

でウェイトを使用することはできませんRelativeLayout。基本的に、その属性は無視されます。つまり、両方のフラグメントが幅でレンダリングされるため、0表示されません。

何を達成しようとしているのかわかりませんが、最初の例(LinearLayout)をRelativeLayout-にラップすることを検討することをお勧めします。つまり、両方のレイアウトを結合/統合します。ただし、これにより、ビュー階層に別のレベルが作成されます。


編集:

私は実際にそれをテストしていませんが、私はこのようなものがあなたが探しているものだと思います:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent">

    <LinearLayout 
        android:id="@+id/fragment_layout"
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        android:layout_above="@+id/footer_view" 
        android:weightSum="3">

        <fragment 
            android:id="@+id/fragmentTitles" 
            android:name="com.fragment.test.TitlesFragment"
            android:layout_width="0dp" 
            android:layout_height="fill_parent"
            android:layout_weight="1" />

        <FrameLayout 
            android:id="@+id/details"
            android:layout_width="0dp" 
            android:layout_height="fill_parent"
            android:layout_weight="2" />
    </LinearLayout>

    <TextView 
        android:id="@+id/footer_view" 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:layout_alignParentBottom="true"
        android:background="#f00" 
        android:text="I am a footer" />

</RelativeLayout>

もちろん、を好きなものに置き換えることができTextViewます。

于 2012-04-18T02:52:44.803 に答える