2011-10-10 119 views
0

我有應該在另一個片段集碎片中的Android活動

在片段的XML的活動中顯示一個片段中的位置我試着使用:

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/second_fragment" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="10sp" 
    android:layout_below="@id/first_fragment"> 
    <TextView 
     android:id="@+id/mytext" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text=" " 
     android:focusable="false" 
     android:clickable="false" 
     android:textSize="20sp" 
     android:padding="5sp" 
     android:layout_centerHorizontal="true"/>  
</RelativeLayout> 

(請注意機器人:layout_below = 「@ ID/first_fragment」 佈局標籤)

我也試過這樣:

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/first_fragment" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="10sp">  
    <TextView 
     android:id="@+id/mytext" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text=" " 
     android:focusable="false" 
     android:clickable="false" 
     android:textSize="20sp" 
     android:padding="5sp" 
     android:layout_centerHorizontal="true" 
     android:layout_below="@id/first_fragment"/>  
</RelativeLayout> 

(請注意TextView標籤中的android:layout_below =「@ id/first_fragment」)

在這兩種情況下,應用程序都會編譯並運行,但第二個片段顯示在屏幕的頂部而不是第一個。

請考慮我用FragmentTransaction編程添加片段,我添加第二個片段,具有添加的第一個之後,但在相同的交易

能否請你告訴我,什麼是錯的?

感謝信

回答

3

可以使用的FrameLayout(ViewGroup中)在活動XML來保存你的片段,然後加入您的片段對象使用addreplace

fragmentTransaction.replace(R.id.frameLayoutId, yourFragmentObject); 

所以你可以隨心所欲對齊

0

這可能是幫助,

<fragment class="com.example.android.hcgallery.TitlesFragment" 
     android:id="@+id/frag_title" 
     android:visibility="gone" 
     android:layout_marginTop="?android:attr/actionBarSize" 
     android:layout_width="@dimen/titles_size" 
     android:layout_height="match_parent" /> 

<fragment class="com.example.android.hcgallery.ContentFragment" 
     android:id="@+id/frag_content" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

+0

嗯,我沒有標籤活動的XML。我有兩個xml和兩個片段類(每個片段一個)。我通過使用FragmentTransaction來添加這兩個片段。在兩個片段類的onCreateView中,我膨脹通訊員xml來創建並返回片段的視圖 – kingston

+0

我必須使用android SDK 3.0或更高版本。 – Thiru

+0

我的意思是我的活動視圖是通過使用不包含任何片段的xml來誇大的。我稍後添加片段。我使用兼容性支持庫 – kingston

2

我修正了這個問題。在佈局我用:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/layout1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <FrameLayout 
     android:id="@+id/top" 
     android:layout_width="fill_parent" 
      android:layout_height="wrap_content"> 
    </FrameLayout> 
    <FrameLayout 
     android:id="@+id/bottom" 
     android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_below="@id/top"> 
    </FrameLayout>  
</RelativeLayout> 

那麼活動:

FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
fr1= new Fragment1(); 
ft.add(R.id.top, fr1 , "top"); 
fr2 = new Fragment2(); 
ft.add(R.id.bottom, fr2, "bottom");  
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); 
ft.commit(); 
getSupportFragmentManager().executePendingTransactions();