2015-04-15 30 views
2

比較新的Android開發,並一直在努力與此。我的問題是在同一頁面上有兩個片段。頂部片段需要僅顯示一些文本,而底部片段需要顯示畫線以畫線。我需要同時觀察兩者。Android兩塊碎片一個畫面,一塊用帆布

從我所做的,我可以得到的底部片段畫線很好,但它覆蓋整個屏幕。我相信,當我在底部片段以下這種情況:

getActivity().setContentView(drawView); 

我如何得到它,只會顯示在底部的片段,而不是顯示在整個屏幕?示例代碼對我來說非常有用。

+0

有沒有理由不能在一個片段中使用兩個視圖? – dharms

+0

我真的不知道如何在一個片段內放置視圖會更好。哪些觀點不起作用。如果我需要底部視圖上的基本畫布,我會實現類似SurfaceView的東西嗎? – Beren

+0

所有視圖都有一個可以在'onDraw'方法中操作的畫布。 – dharms

回答

3

setContentView將取代已有的任何東西。

首先,您必須爲該片段創建兩個容器插槽。把這個在你的活動佈局XML

<RelativeLayout 
    android:id="@+id/fragmentContainer1" 
    android:layout_weight="1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    ></RelativeLayout> 

<RelativeLayout 
    android:id="@+id/fragmentContainer2" 
    android:layout_weight="1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    ></RelativeLayout> 

然後,你需要設置佈局作爲活動佈局在活動的Java文件:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    //this line will set layout from the xml layout 
    setContentView(R.layout.activity_main); 
} 

然後將插槽中的片段: 片段myFrag = new TopFragment(); Fragment myFrag = new BottomFragment();

getFragmentManager().beginTransaction().add(R.id.fragmentContainer1,new TopFragment()).commit(); 
getFragmentManager().beginTransaction().add(R.id.fragmentContainer2,new BottomFragment()).commit(); 

還有其他的方法也取決於你是否想用xml聲明所有東西。

+0

「將片段放入插槽中」是什麼意思?什麼是插槽? – Beren

+0

在更詳細地查看有關碎片的文檔後,您發佈的內容會更有意義並適用於我的問題。謝謝你的幫助! – Beren